第一章-变量
1.内置类型
空值(null)
未定义(undefined)
布尔值(boolean)
数字(number)
字符串(string)
对象(object)
符号(symbol,ES6新增)
2.null==='object'
typeof null === 'object' //true
正确的返回结果应该是"null",但这个bug由来已久,
在javascript中已经存在了将近20年,也许永远也不会修复
因为这涉及太多现有的web系统,修复它会产生更多的bug
3.null是基本类型中唯一的假值
var a = null;
(!a && typeof a === "object"); //true
4.function(函数)是javascript的一个内置函数
实际上function是object的一个“子类型”,
函数是"可调用对象",它有一个内部属性[[Call]],
该属性使其可以被调用
5.数组是对象,是object的一个子类型
typeof [1,2,3] === "object"; //true
6.javascript中的变量没有类型,只有值才有类型
变量可以随时持有任何类型的值
7.undefined与undeclared
变量在作用域中声明但是没有复制为"undefined",
变量在作用域中未声明"undeclared"
第二章-值
1.数组可以容纳任意类型的值
2.delete操作后不会影响数组的长度
使用delete运算符可以将单元从数组中删除,
但是单元删除后数组的length属性并不会发生变化
3.稀疏数组的length受最大值影响
var a = [];
a[0] = 1;
a[2] = 3;
a[1]; //undefined
a.length; //3
4.数组中数字和字符作为索引时,数组长度只统计数字部分
var a = [];
a[0] = 1;
a["bugall"] = 2;
a.length; //1
a["bugall"] = 2;
a.bugall = 2;
5.如果字符串键值能够被强制类型转换为十进制数字的话,
它会被当做数组索引处理
var a = [];
a["13"] = 42;
a.length; //14
6.javascript只有一种数值类型:number
javascript中的数字类型是基于IEEE 754标准实现的,
该标准通常也被称为“浮点数”,javascript使用的是
"双精度"格式64位二进制
7.42.toFixed(2) //SyntaxError
42..toFixed(2) = 42.00,42.toFixed(2)
是无效语法,因为.被视为常量42.的一部分
8.0.1+0.2 === 0.3 //false
二进制浮点数中0.1和0.2并不是十分精确,它们相加的结果并非刚好等于0.3,而是一个
非常接近的数字0.3000000000000000002
9. 如何判断两个小数是否相等
function numbersCloseEnoughToEqual(n1,n2){
return Math.abs(n1-n2)
}
numbersCloseEnoughToEqual(0.3,0.3) //true
10. 整数的安全范围
数字的呈现方式决定了“整数”的安全值范围远远小于
Number.
网友评论