阅读:《javascript权威指南》(笔记)
Posted 土豆何必为难土豆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阅读:《javascript权威指南》(笔记)相关的知识,希望对你有一定的参考价值。
判断是否为NaN类型:x!=x //true 当且仅当x为NaN时,x才不等于自身。
isNaN()//ture 参数为NaN或则非数字值,则返回true。false可判是否为断数字和字符串数字(如:"3");
js数字精度值极其接近0.1,如:0.411 - 0.401,期待结果0.01,实际结果结果为0.009999999999999953;通过"\"符号连接字符串,拼接html字符串更简洁,更高效;
parseInt和parseFloat参数若为字符串,则该字符串只能以空格和数字开头,否则解析为NaN,并且只能解析连贯的数字,如:parseInt(" 12abc")//12,parseInt("abc111")//NaN,parseInf(" 1a2b3c")//1,parseInf(" 1 2")//1;
toString或valueOf将对象转换为原始值,但大多数对象无法真正表示原始值,此时valueOf方法返还对象本身;
通过var定义的变量可枚举,可读写,但不可配置,so,无法通过delete删除;
通常,null表示意料之中的空值,而undefined表示意料之外的,不可预见的空值;
"," 操作符,返回第二个操作数,如连续使用,则返回最后一个操作数,如:1,2,3//3;
一般情况下,函数和可执行对象都能用typeof检测出"function",但在ie9之前,非原生可执行对象的检出结果却为"object";
with(o) x = 1,如果o对象中存在x,则对其赋值为1,否则,with语句不起任何作用,x将会挂在window对象下(如果不存在x),并被赋值为1。在严格模式种,禁止使用with;
严格模式(ES5):禁止使用with,
变量必须先声明,否则会抛出引用错误异常,
arguments不再引用函数的参数地址,而是参数的副本,
运用arguments.caller和arguments.callee将抛出异常,
更多见《javascript权威指南》(第六版)5.7.3 "use strict";
属性描述(读写 枚举 配置)在ES5以前都是true,不可配置,ES5及更高版本则可配置;
js无法通过对象(B)修改其原型链上对象(A/B.prototype),可利用这点,实现inherit函数,创建继承目标对象(A)的空对象(B)来代替A做一些事情,从而避免A被意外修改,inherit函数如下:
function inherit(obj){
... //确保obj为非null的对象
if(Object.create){//ES5+
return Object.create(obj)
}else{//ES5以下,利用new function创建继承关系
function f() {}
f.prototype = obj
return new f()
}
}
Object.key与Object.getOwnPropertyNames(ES5),Object.key()返回可枚举的自有属性名的集合A,Object.getOwnPropertyNames()返回所有自有属性名的集合B,A是B的子集;
getter、setter(ES5),属性描述中不具有writable这项,只有getter,则可读,只有setter,则可写,两者都有,则可读写;
getPrototypeOf(ES5)和setPrototypeOf(ES6)来自Object对象,为其私有属性,不可继承,也不能在Object原型链上找到,so,一般情况,只能通过Object.getPrototypeOf/setPrototypeOf的方式调用,而isPrototypeOf(ES5)来自根对象(Object.prototype),可被继承,因此,可直接使用任意对象A.isPrototypeOf的方式使用;
以上是关于阅读:《javascript权威指南》(笔记)的主要内容,如果未能解决你的问题,请参考以下文章