美文网首页
javascript细节

javascript细节

作者: 代码和远方 | 来源:发表于2016-12-01 19:32 被阅读0次

第一章-变量

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.

相关文章

网友评论

      本文标题: javascript细节

      本文链接:https://www.haomeiwen.com/subject/hbffmttx.html