JavaScript笔记:类型、值、变量、类型转换
JavaScript中的类型
1.数字
2.字符串(char是长为1的字符串)
3.布尔值
4.null
5.undefined
6.对象(包括函数)
算术运算中的注意点
1.1/0 = Infinity(除0不报错)
2.0/0 = NaN
3.NaN不与任何值相等,包括自身
4.Infinity/Infinity = NaN
5.负数开平方 = NaN
6.+0 == -0 为真
7.判断 NaN 和 Infinity 的好办法是 isNaN() 和 isFinite()
字符集
1.JavaScript采用UTF-16编码的Unicode字符集
2.不能表示为16位的Unicode字符用两个16位值组成的序列表示,称作“代理项对”
3.JavaScript定义的各种字符串操作方法均作用于16位值,而非字符,且不会对代理项做单独处理
转义字符
1.\xXX:由两位十六进制数XX制定的Latin-1字符
2.\uXXXX:由4位十六进制数XXXX指定的Unicode字符
关于null 和 undefined
null表示”没有对象”,即该处不应该有值。典型用法是:
1.作为函数的参数,表示该函数的参数不是对象
2.作为对象原型链的终点
undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:
1.变量被声明了,但没有赋值时,就等于undefined
2.调用函数时,应该提供的参数没有提供,该参数等于undefined
3.对象没有赋值的属性,该属性的值为undefined
4.函数没有返回值时,默认返回undefined
|
|
JavaScript类型转换
1.类型转换表
| 值 | 字符串 | 数字 | 布尔值 | 对象 |
|---|---|---|---|---|
| undefined | “undefined” | NaN | false | throws TypeError |
| null | “null” | 0 | false | throws TypeError |
| true/false | “true”/“false” | 1/0 | \ | new Boolean(true/false) |
| “”(空串) | \ | 0 | false | new String(“”) |
| “1.2”(非空数字) | \ | 1.2 | true | new String(“1.2”) |
| “one”(非空非数字) | \ | NaN | true | new String(“one”) |
| 0/-0 | “0” | \ | false | new Number(0/-0) |
| NaN | “NaN” | \ | false | new Number(NaN) |
| Infinity/-Infinity | “Infinity”/“-Infinity” | \ | true | new Number(Infinity/-Infinity) |
| {}(任意对象) | 见下文 | 见下文 | true | \ |
| 1,2,3 | “1,2,3” | 0 | true | \ |
| 6 | “6” | 6 | true | \ |
| [‘s’] | 使用join()方法 | NaN | true | \ |
| function(){}(任意函数) | 见下文 | NaN | true | \ |
2.对象至字符串的转换
step1:试图使用该对象的toString()方法得到原始值,再化该原始值为字符串
step2:若该对象没有toString()方法或toString()方法不返回原始值,则试图使用对象的valueOf()方法得到原始值并转为字符串
step3:若该对象无法从toString()和valueOf()方法得到原始值,则抛出类型错误异常
3.对象至数字的转换
step1:若对象具有valueOf()方法,则通过它得到原始值,再将其转为数字
step2:若对象没有valueOf()方法但有toString()方法,则通过后者返回一个原始值,再将其转为数字
step3:否则,抛出一个类型错误异常
4.字符串到数字的转换
Number():转化为整数或浮点数直接量,只适用于十进制
全局函数parseInt(string)、parseInt(string, n):只能解析整数,自动识别”0x”或”0X”前缀,跳过前导空格,尽可能多解析字符,并忽略后面不可解析的内容
全局函数parseFloat():可解析整数和浮点数,跳过前导空格,尽可能多解析字符,并忽略后面不可解析的内容
5.数字到字符串的转换
toString(n):n进制的字符串,缺省则转化为十进制
toFixed(n):小数点后n位的数字
toExponential(n):指数计数法,小数点前只有1位,小数点后n位
toPrecision(n):有效数字n位