javaScript权威指南学习笔记(一)
全书主要分为两部分:第一部分:JavaScript语言核心
第二部分:客户端的JavaScript
第二章 词法结构
1、javascript使用Unicode字符集,Unicode是使用两个字节来表示一个字符。
2、大小写敏感。
3、JS会忽略程序中记号之间的空格、制表符、换行符,除非它们是字符串或正则表达式直接量的一部分。
4、单行注释//,多行注释/*......*/,注释不能嵌套。
5、JavaScript可以省略分号,但也有例外的情况,所以还是要规范书写。
a=3 //分号可以省略,js会自动补上分号 b=4; var y=x+f //分号不能省略,省掉后,js会将f和(a+b)合并,最后理解为var y=x+f(a+b).toString();
(a+b).toString();
return
true; //js会理解为return;true; 所以应该写在一行,return true;
第三章 数据类型和值
1、
五种基本类型:数字、文本字符串、布尔值、null(空)、undefined(未定义)。
三种引用类型:数组、函数、对象。对象分为:普通对象、专用对象(例如Date、Error、RegExp)
2、js中的算术运算在溢出、下溢或被0整除时不会报错。
溢出时结果为无穷大,使用Infinity表示。
下溢会返回0,当一个负数发生下溢时,会返回“负零”。
被0整除时会返回无穷大或负无穷大,但0/0时会返回NaN(not-a-number)。
NaN:和任何值都不相等,所以不能使用x==NaN来判断变量x是否是NaN。应当使用x!=x来判断。只有当x为NaN时,该表达式为true。
3、字符串可以使用\拆分为多行。和java类似,JavaScript中的字符串也是固定不变的,对字符串进行修改会返回一个新的字符串。
4、null和undefined
console.log(null==undefined)//true console.log(null===undefined)//false
null: 表示没有对象,此处不应该有值。从内存层面来看就是栈中的变量没有指向堆中的对象。一个对象通常是被人为的置为null。
typeOf(null)得到object。
Number(null)=0。
null是一个object类型的对象。
undefined:表示有对象,应该有值,但是还未被定义。通常表示一个对象的原始状态。
undefined是一个全局变量。
Number(undefined)=NaN。
几种返回undefined的情况:
(1)变量被声明了,但是还未被赋值
(2)调用函数时,应该提供的参数没有提供。function f(x){...} f();
(3)访问对象不存在的属性。
(4)函数没有返回值时