1.JavaScript简介
JavaScript是一种专门为网页交互设计的脚本语言,由下列三个不同的部分组成:
- ECMAScript: 由ECMA-262定义,提供核心语言功能;
- 文档对象模型(DOM):提供访问和操作网页内容的方法和接口;
- 浏览器对象模型(BOM):提供与浏览器交互的方法和接口;
2.标识符
所谓标识符,就是指变量,函数,属性的名字,或者函数的参数。标识符可以是按照下列格式规则组合起来的一个或多个字符。
- 第一个字符必须是一个字母,下划线,或一个美元符号;
- 其他字符可以是字母,下划线,美元符号或数字。
3.typeof操作符
对一个值使用typeof操作符可能会返回下列某个字符串:
- “undefined” 这个值未定义
- “boolean” 这个值是布尔值
- “string” 这个值是字符串
- “number” 这个值是数值
- “object” 这个值是对象或者null
- “function” 这个值是函数
4.undefined
未经初始化的变量就会默认为undefined,主动赋值为undefined的值,它们在typeof检测的时候没有任何区别。但alert的时候一个会报错,另一个不会。
5.null
1.从逻辑角度看,null值表示一个空对象指针,使用typeof时会返回object。
2.实际上undefined是派生自null值的,所以null==undefined
3.没有必要将一个变量赋值为undefined,但如果变量将要保存为对象,就应该赋值为null
6.Boolean类型
1.可以调用Boolean()将任何类型的值变为Boolean类型的值
2.转换为false的其他类型的值有
- 空字符串
- null
- undefined
- 0和NaN
7.Number类型
-
0.1+0.2不等于0.3,永远不要测试浮点数的数值。
-
Infinity(正无穷)和-Infinity(负无穷),可以使用i是Finite()函数来检测,这个函数在位于负无穷和正无穷之间时会返回true
-
NaN,任何数值除以0都会返回NaN.其次,NaN与任何值都不相等,包括NaN自身。isNaN()函数,任何不能被转换为数值的值都会返回true,否则返回false
8.数值转换
有三个函数可以把非数值转换为数值:Number(),parseInt()和parseFloat().第一个函数Number()可以用于任何数据类型,另两个函数则专门把字符串转换为数值。
Number()函数的转换规则如下:
- Boolean值:true为1,false为0
- null 为0
- undefined为NaN
- 字符串:
- 如果字符串只包含数字,则“1”变成1,“123”变成123.“011”变成11,前面的0被省略了。
- 如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样,也会忽略前导零);
- 如果字符串中包含有效的浮点格式,如“0xf”,则将其转换为对应的十进制整数值。
- 如果字符串为空,则为0.
- 如果字符串包含有上述格式之外的字符,则将其转换为NaN.
- 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。
parseInt()函数:
- parseInt函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的字符,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,就会返回NaN.
- 为了消除在使用parseInt()函数时可能导致的问题,可以为这个函数提供第二个参数:转换时使用的基数(即多少进制)。
parseFloat()函数:
- 从第一个字符开始解析每个字符,直至遇见一个无效的浮点数字字符为止。也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的了。
- 由于parseFloat()只解析十进制值,因此它没有用第二个参数指定基数的用法。
- 如果小数点后面为0,则parseFloat返回整数。
9.String类型
1.字符字面量
String数据类型包含一些特殊的字符字面量,也叫转义字符,用于表示非打印字符。
10.转换为字符串
const example = {
a: 100
}
console.log(example.toString()); //[object Object]
console.log(example.valueOf());// {a: 100}
console.log(example);// {a: 100}
11.toString()
数值,布尔值,对象和字符串值都有toString()方法。但null和undefined值没有这个方法。
在调用toString()方法时,可以传递一个参数:输出数值的基数。通过传递基数,toString()可以输出以二进制,八进制,十六进制,乃至其他任何有效进制格式表示的字符串值。
12.String()
在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。遵循以下规则:
- 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果。
- 如果值是null,则返回“null”
- 如果值是undefined,则返回“undefined”
13.Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。
Object的每个实例都具有下列属性和方法:
- Constructor: 保存着用于创建当前对象的函数。
- hasOwnProperty(propertyName): 用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。
- isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
- toLocaleString():返回对象的字符串显示,该字符串与执行环境的地区对应。
- toString():返回对象的字符串表示。
- valueOf():返回对象的字符串,数值或布尔值表示。