chapter 2 在html中使用JavaScript

chapter 3 基本概念

EMCAscript 语法

变量,函数名和操作符都区分大小写。

使用var定义的变量将成为定义该变量的作用域中的局部变量;

省略var定义变量 就成了全局变量;

数据类型:

  1. Undefined 变量定义后未初始化;只有一个值undefined
  2. Null 只有一个值null;
  3. Boolean 值为true 或 false
  4. Number
  5. String
  6. Object

Number 类型:

  NaN类型,即非数值(Not a Number),和任何值(包括它自己)都不相等;

  

  调用isNaN方法时,对象先调用valueof()再调用toString(),再对结果进行判断;

  常用数值转换函数:Number(),parseInt(),parseFloat(),括号内放入参数;

操作符:

  一元操作符,前置和后置++、--;

  前置:

  

  后置:num=age++,age先执行num=age再自增;

  

全等和不全等

  全等===,在两个操作数未经转换就相等的情况下返回true;

  不全等!==,在两个操作数未经转换就不相等的情况下返回true;

语句

  for-in ,迭代语句;

for(var propName in window){document.write(propName);
}

  label 语句(标签语句,格式 label:statement);

start: for(var i=0;i<12;i++){document.write("i="+i+"<br>");  for(var j=12;j>0;j--){document.write("j="+j+"<br>"); if(j<=i){break start; //直接跳出外层循环;}}}

函数

定义:

function functionName(arg0,arg1,......,argN){

  statements

}

chapter 4 变量、作用域和内存问题

基本类型和引用类型值

基本类型值指的是简单的数据段,引用类型值指那些有多个值构成的对象。引用类型的值是保存在内存中的对象。

使用typeof 检测基本数据类型,使用instanceof 检测引用类型。

执行环境和作用域

没有块级作用域

if(true){var color="blue";
}
for(var i=0;i<10;i++){
}
alert(color+i);

如果初始化没有使用var 声明,该变量会自动被添加到全局环境中。

查询标识符:搜索过程从作用链的前段开始,向上逐级查询与给定名字匹配的标识符。除非直接获取window.color,获得全局变量。

垃圾收集

  1. 标记清除
  2. 引用计数

chapter 5 引用类型

栈方法:

Function 类型

函数名类似于指针,所以函数没有重载的概念。同名的函数,后声明的函数会覆盖之前同名的函数。

函数的属性和方法

函数就是对象,因此有属性和方法。

属性:

  1. length 函数接受参数的个数
  2. prototype

基本包装类型

 

单体内置对象

Global对象

  

  1.URI 编码和解码方法

  2.eval() 方法

  eval 方法,接收一个参数,该参数会被当做js解析,且与方法外执行环境有相同的作用域。

  3.window对象

  web浏览器将Global对象功能归附于window对象来实现(window不仅拥有Global功能还承担了其他的任务)。在全局作用域中声明的所有变量和函数,都成为window对象的属性。

  获取global对象的另一种方式:

j=1;var global=function(){return this;
}();
alert("global.j="+global.j);

Math 对象

  max(),min()

  var arrays=[1,2,3,4,5];

   var max=Math.max.apply{Math,arrays};//获取数组的最大元素

  Math.ceil(n);  向上舍入

  Math.round(n); 标准四舍五入

  Math.floor(n);  向下舍入

chapter 7 函数表达式

递归

  使用arguments.callee,是一个指向正在执行的函数的指针,可以用来实现对函数的递归调用。

function factorial(num){if(num<=1){return 1;}else{return num+"*"+arguments.callee(num-1);}
}
var string = factorial(10);
alert(string);//弹出阶乘表达式

模仿块级作用域

javascript 没有块级作用域的概念。

function outputNumbers(count){for(var i=0;i<count;i++){document.write(i);}document.write("<br>");alert(i);
}
outputNumbers(10);

转载于:https://www.cnblogs.com/mryangbo/p/10020563.html

《javascript 高级程序设计》 笔记1 1~7章相关推荐

  1. JavaScript高级程序设计笔记01 | 第一章到第四章 | 关键字与保留字 | 数据类型 | 操作符 | 作用域

    观前提示:大部分都是书上的内容,个人理解的部分的较少,看我的笔记还不如去看书 第二章 async:可选.表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本.只对外部 ...

  2. Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记

    由于JavaScript 变量松散类型的本质,决定了它是在特定时间用于保存特定值的一个名字而已,变量的值及其数据类型可以在脚本的生命周期内改变.这可能既有趣又强大,同时又容易出问题. 4.1 语法 E ...

  3. Javascript高级程序设计第二版第七章匿名函数--笔记

    匿名函数就是没有名字的函数,有时候也称为拉姆达(lambda)函数. function functionName(){}; 这是一个函数声明 在代码执行以前被加载到作用域中 var functionN ...

  4. JavaScript高级程序设计笔记 - 第四章 变量 作用域 内存问题

    4.1 基本类型和引用类型的值 基本类型: 简单的数据段 引用类型: 指那些可能有多个值构成的对象, 指保存在内存中的对象 4.1.2 复制变量值 除了保存的方式不同之外,在从一个变量向另一个变量复制 ...

  5. JavaScript高级程序设计:6.7.8章阅读札记

    第六章 :对象 6.1 对象的属性 对象的属性分为两类:数据属性.访问器属性 A: 数据属性 configurable(能否通过delete删除属性从而重新定义属性) enumerable(是否可通过 ...

  6. javascript高级程序设计--笔记01

    概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型( ...

  7. Javascript高级程序设计第二版第十一章--DOM2,DOM3--笔记

    今天跟诸位分享一下,高程,第二版,11章,dom2,dom3 纵观这一章,一个概念,dom在变,现在变,未来变,反正不断的变. 不过变来变去,ie是不支持dom2,dom3,可能未来新版本支持部分do ...

  8. Java高级程序设计笔记 • 【第6章 设计模式】

    全部章节   >>>> 本章目录 6.1 设计模式 6.1.1 设计模式概述和分类 6.1.2 单列模式介绍 6.1.3 单例模式的实现 6.1.4 实践练习 6.2 单例模式 ...

  9. javascript高级程序设计笔记

    1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message="hello world!"; var messageAsBoole ...

  10. JavaScript高级程序设计笔记 事件冒泡和事件捕获

    1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body><div> click me!</div> < ...

最新文章

  1. 解决Linux CENTOS服务器 tree命令出现乱码 解析原因
  2. 九款让WordPress成为赚钱利器的广告插件
  3. 经典C语言程序100例之七八
  4. 计算机一级在线解析,2016年计算机一级试题及答案解析
  5. LINQ-to-SQL那点事~耳目一新的partial class 和 partial method
  6. 机械专业中的计算机应用系统,计算机在机械行业中的应用
  7. 2022年制造业单项冠军行业研究报告
  8. nserror 自定义错误_iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂...
  9. ipv4v6双栈技术_什么是IPv6双栈技术
  10. 【刷题】清橙 A1339 JZPLCM(顾昱洲)
  11. 群晖docker实现IPV6访问
  12. android官方模拟器下载安装,网易MuMu模拟器
  13. 模拟鼠标键盘操作,含硬件模拟技术。
  14. 猫狗图像识别(卷积神经网络算法,TensorFlow安装)
  15. 09组团队项目-Beta冲刺-2/5
  16. 获取IE浏览器版本号
  17. Ubuntu下如何查看已安装软件版本
  18. 数学物理不好适合学计算机科学与技术吗,数学不好最好不要报这些专业
  19. 关于计算机网络,你需要知道的一些常识
  20. Spring boot系统拦截处理异常调转404/500页面

热门文章

  1. 在Linux系统里安装Virtual Box的详细步骤 1
  2. mysql数据库财务_MySQL数据库——从入门到删库跑路(二)
  3. 二维碰撞检测matlab,二维平面内的碰撞检测【二】
  4. 树状数组基础原理与模板
  5. 雷蛇鼠标宏文件_《硬事要说34》稳接曼巴的旗?雷蛇巴塞利斯蛇[终极版]解读...
  6. 对称二叉树Python解法
  7. java判断字符串是什么编码_java可供判断某字符串是什么编码的一行代码
  8. windowopen传值到jsp_window.open()使用方法以及传参数的问题总结
  9. python安装库失败cannot determine archive_pip 无法安装 pip
  10. python 列表推导_说说在 Python 中如何使用列表推导