阅读:《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的方式使用;

     

时间: 2025-01-01 14:13:58

阅读:《javascript权威指南》(笔记)的相关文章

JavaScript权威指南笔记——第1部分

# <JavaScript权威指南>笔记--第1部分 说明: 印刷版:2012年4月第1版 2016年9月第17次印刷. 本书的风格和<Effective Java>很类似,推荐一下. 该笔记逆序记录的. ----------------------- ------<end>------ | node的helloworld程序: ```js //! program.js // 通过在命令行输入`node program.js`来运行,然后在浏览器中打开网址`127.0.

1.语言概述-JavaScript权威指南笔记

上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格.另外要说的是,可能很多地方是摘抄转述和不精确的个人阶段,开始阶段先这样好了,希望看到自己成长. 1.前端开发工程师必备三种技能:描述网页内容之HTML,描述网页样式之CSS,描述网页行为之JavaScript. HTML:Hyper Text Markup Language.超文本标记语言,据说并不

javascript权威指南笔记(第7章 数组)

1.注意: a[-1.23] = true; // This creates a property named "-1.23" a["1000"] = 0; // This the 1001st element of the array a[1.000] // Array index 1. Same as a[1] 2.delete操作符产生稀疏数组 3.设置数组的长度会自动切断或添加undefined 4.javascript不支持真正的多维数组但是可以用数组的数

2.词法结构-JavaScript权威指南笔记

今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASCII的超集,各种语言妥妥支持,克林贡语=.=?当我没说 2.JavaScript是区分大小写的. 这一点给我留下了深刻印象.去年五月份,第一次写JavaScript,document.getElementById()写成了document.getElementByID(),妈蛋整整一个上午硬是get

javascript权威指南笔记(第6章 对象)

1.对象概述 1.对象常见的用法: create .set .Query .delete .test.enumerate 2.对象的属性特性: 可写.可枚举.可配置 3.每个对象的对象特性: 原型.对象的类.对象的可扩展性 4.对象和属性分类: 内置对象.宿主对象.自定义对象.自由属性.继承属性 2.创建对象 1.对象直接量 2.通过new创建对象 3.原型 4.Object.create() 第一个参数:这个对象的原型 第二个参数:可选.对对象的属性进行进一步描述 var o1 = Objec

3.类型、值和变量-JavaScript权威指南笔记

开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度. 1.概论. value:程序的运行是对值的操作. type:能够表示并操作的值,它们的类型称作数据类型.编程语言的基本特性是能支持多种数据类型. variable:变量是某个值的符号名称,通过名称获得对该值的引用. JavaScript的数据类型分为:原始类型-primitive type:对象类型-object type. JavaScript解释器可以自动对内存进

javascript权威指南笔记学习

//返回了一个继承自原型对象p的属性的新对象 function inherit(p){ if (p ==null) throw TypeError(); if (Object.create){ return Object.create(p); } var t=typeof p; if (t!=="object"&&t!=="function") throw TypeError(); function f(){}; f.prototype=p; ret

javascript权威指南笔记(第9章 类和模块)

1.工厂函数 function range(from, to) { var r = inherit(range.methods); r.from = from; r.to = to; return r; }; range.methods = { includes: function (x) { return this.from <= x && x <= this.to; }, foreach: function (f) { for (var x = Math.ceil(this

javascript权威指南——笔记

字符集:Unicode字符集 JS:区分大小写 标识符:指变量.函数.属性名.函数名.函数参数 第一个字符:字母.下划线.$ 其后的字符:字母.下划线.$.数字 默认:驼峰命名 转义字符: \n 换行 \t制表 \b空格 \r回车 \f换页符 \\ \' \" 注释:单行// 多行 /**/ 直接量: number.string.boolean.null./RegExp/img 语句:以分号';'结尾 关键字.保留字: do,while,for,in,continue,break, if,els

javascript权威指南笔记(第10章 正则表达式的模式匹配)

1.非贪婪的重复:如"??" .   "+?"   . "*?"  ."{1,5}?" 例如: 非贪婪匹配 /a+?/去匹配aaa,尽可能的少匹配,只能匹配到第一个a, /a+/去匹配aaa,匹配到了aaa /a+b/去匹配aabb,匹配到aabb 而使用非贪婪匹配/a+?b/,它会匹配尽可能少的a和一个b,但是匹配到了aabb,因为会寻找正则表达式第一个匹配的位置 2.圆括号的作用 1.将单独的项组合成子表达式 2.完整的模