读书笔记 - js高级程序设计 - 第三章 基本概念 -

启用严格模式 "use strict" 这是一个 pragma 编译指示
让编码意图更清晰  是一个重要原则
5种简单数据类型 Undefined Null Boolean Number String
1种复杂数据类型 Object
检测数据类型的方法
typeof

有如下值:

undefined boolean object string number function

typeof Null object
意在保存对象还没有保存对象的变量的初始值最好是什么 null
八进制的第一位必须是 0
undefined == null 的结果 是 true
浮点数值使用注意事项 永远不要测试其值                   
最大数值 Number.MAX_VALUE
最小数值 Number.MIN_VALUE
判断数值是否有穷 inFinite()
NaN 是一个特殊的数值 两特点是
涉及它的操作结果都是NaN

和任何值包括它自己 都不相等

把别的进制数 转为 10进制数 parseInt( "A", 16) ;
把10进制数 转为 别的进制数据  num.toString( 16 )  即转为16进制数
object里有的属性和方法
constructor  保存着用于创建当前对象的函数

hasOwnProperty() 不能判断原型中的

isPrototypeOf  用于检查传入的对象是否是当前对象的原型

propertyIsNumerable() 用于检查给定的属性是否能够使用 for-in来枚举

toLocalString 返回对象的字符串表示

toString

valueOf  通常与toString方法返回的值相同

操作符分4类
算术操作符:++ --

位操作符: 非 与 或 异或,左移 右移 无符号右移

关系操作符:

相等操作符

按位非 NOT
~num

即取反码

相当于负值减1

按位与 AND a&b 都为1才是1
按位或 OR a|b 只要有一个为1就是1
按位异或 XOR a^a  两位不同才为 1
左移
a << 5

左移不会影响符号位

比如 -2 移 5位 会变成  -64

有符号的右移 a >>5 和左移正好相反 
无符号的右移 
a >>> 5

如果原数是负数,数字会变得非常大,且变为正数

逻辑非
!a 
逻辑与
a&&a 
逻辑或
a||b
   
   
   
   
时间: 2024-10-06 22:55:13

读书笔记 - js高级程序设计 - 第三章 基本概念 -的相关文章

读书笔记 - js高级程序设计 - 第六章 面向对象的程序设计

EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value 前三个值的默认值都为false 举例 Object.defineProperty( person, "name", { writable:false, value:"niko"} ) ; 一旦属性定义为不可配置的,就不能再把它变回可配置的了 读取属性 的特性 var descriptor  = Object.ge

读书笔记 - js高级程序设计 - 第七章 函数表达式

闭包 有权访问另一个函数作用域中的变量的函数 匿名函数 函数没有名字 少用闭包 由于闭包会携带包含它的函数的作用域,因此会比其它函数占用更多的内存.过度使用闭包可能会导致内存占用过多,我们建议读者只在绝对必要时再考虑使用闭包 模块模式   增强的模块模式   特权方法 有权访问私有变量的公有方法叫做特权方法 块级作用域   实现单例的特权方法  

读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题

5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中 执行环境的销毁 某个执行环境中的所有代码执行完毕后 该环境被销毁 保存在其中的所有变量了函数定义也会随之销毁 作用域链中的对象 全局执行环境的变更对象始终都是作用域链中的最后一个对象 没有块级作用域 if 和 for 内的变量 外部也可以访问 标记清除 不同浏览器 只不过垃圾时间的长短不同 引

读书笔记 - js高级程序设计 - 第十一章 DOM扩展

对DOM的两个主要的扩展 Selectors API HTML5 Element Traversal 元素遍历规范 querySelector var body = document.querySelector("body"); var myDiv = document.querySelector("#myDiv"); 取得id为myDiv的元素 var selected = document.querySelector(".selected")

读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

读书笔记 - js高级程序设计 - 第十三章 事件 canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好 有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){ drawing.getContext("2d"

读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3

Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px" 计算的样式 记住所有计算的样式都是只读的 偏移量 offsetHeight 外边框外 offsetWidth offsetLeft  外边框外 到 左端 offsetTop  客户区的大小 clientWidth  内边框外缘 clientHeight 内边框外缘 滚动大小 scrollHeight

读书笔记 - js高级程序设计 - 第十章 DOM

文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node.ATTRIBUTE_NODE 属性 Node.TEXT_NODE 文本元素 Node.CDATA_SECTION_NODE Node.ENTITY_REFERENCE_NODE Node.ENTITY_NODE Node.PROCESSING_INSTRUCTION_NODE; Node.COMMENT_NOD

JS 高级程序设计 第三章

1.标识符: 标识符,是指变量.函数.属性的名字,或者函数的参数. 标识符的命名规则: (1)第一个字符必须是字母.下划线或者美元符号 (2)其他字符可以是字母.下划线.美元符号和数字. 修改变量值的同时可以修改值的类型 2.用var操作符定义的变量将成为定义该变量的作用域中的局部变量,省略var将建立一个全局变量. 3.ECMAScript中有五种简单的数据类型:Undefined.Null.Boolean.Number.String,还有一种复杂的数据结构-Object,它的本质是一组由无序

读书笔记 - js高级程序设计 - 第八章 BOM

BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网页中定义的任何一个对象,变量 和 函数 都以window作为其Global函数 窗口关系和frame 每个frame都有自己的window对象,并且保存在frames集合中, 在frames集合中,可能通过数值索引 或者 框架名称来访问 相应的 window 对象 top 始终指向 最高层的 框架,也就