Javascript权威指南看书笔记

Javascript权威指南看书笔记

第一章 词法结构

  • javascript区分大小写,而html不区分大小写

  • unicode转义序列是由/u为前缀加4位16进制数组成

  • 标识符必须以字母,下划线 _,美元符 $,开始

  • 分号:javascript中语句独占一行,通常可以省略语句之间的分号。

    例外:
    
       1. return,break,continue,后紧跟换行,javascript会在换行处补填分号。
    
       2. 双目运算符++,--,若想作为表达式后缀的话必须与表达式同一行。
    

第二章 类型,值和变量

  • javascript支持十进制和十六进制,因ECMAscript标准不支持八进制直接量,因此最好不要用以0为前缀的直接量

  • Math对象的属性:

        math.round(.6)   //=>1.0 四舍五入

        math.ceil(.6)   //=>1.0 向上去整

        math.floor(.6)   //=>0.0 向下去整
  • 算数运算中的特例

    • 溢出(overflow):数字运算结果超过了javascript所能表示的上限

    正数返回Infinity,负数返回-Infinity

    • 下溢(underflow):结果比javascript所能表示的最小数小,返回0,

    负数下溢会返回特殊的值’-0’

    • 被0整出返回Infinity或-Infinity,例外,0/0返回NaN

    • NaN:和任何值都不相等,包括自身

  • 判断isNaN()函数

        x!=x;  //仅当x为NaN,为true
  • 0和-0值除了作为除数外两个值是相等的

  • 二进制浮点数并不能精确表示类似于0.1的简单数字

        (.2-.1)==(.3-.2);  //=>>false
  • 字符串直接量:用单引号来界定字符串时,需格外小心英文中的所有个和缩写,需用(/)转义

    • Javascript和HTML带吗使用各自独立的引号风格

    • Javascript表达式使用单引号表示字符串

    • HTML事件处理属性时用双引号表示字符串

  • 属性:

        s.replace(“h”,”H”); //”hello”=>”Hello”

        s.toUpperCase( ); //”hello”=>”HELLO”
  • 字符串还可以当作只读数组,通过方括号访问

  • 布尔值:javascript的任意值都可以转化为布尔值

    False:undefined ; null ; 0 ; -0 ; NaN ;‘ ‘
    
    True: 所有其他值,包括所有对象,数组
    
  • Null是javascript的关键字,undefined是预定义的全局变量,“==”认为两者是相等的

  • 包装对象

        var s=”test”;

        S.len=4;

        Var t=s.len; //undefined
    在读取字符串,数字和布尔值的属性(或方法)时,表现得像对象一样。但试图给其属性赋值,则会忽略该操作:修改只发生在临时对象上,而临时对象并未继续保留下来
  • 原始值是不可改变的。(undefined,null,布尔值,数字,字符串)

  • 对象的值可通过对象属性来更改(数组,函数)

    • 两个对象包含相同的属性和值也不相等
  • Number()和parseFloat()区别

    • Number():只能用于十进制数转换,并且不能出现非法尾随字符

    • parseInt():会跳过任意数量的前导空格,并忽略后面的内容,第一个非空格字符是非法的数字直接量则返回NaN

  • 所有的对象转换为布尔值都是true

  • 尽管全局作用域编写代码时可以不写var语句,但声明局部变量时必须使用var语句

  • 声明提前:函数体内局部变量遮盖同名全局变量,函数体内的变量声明会提前至函数体顶部

  • 声明一个javascript全局变量时,实际上是定义了全局对象的一个属性

  • javascript中,所有柱子都是浮点型的,除法运算结果也是浮点型

第三章

  • “===”:当两操作数类型和值都相等。0===-0

  • “==”:若两操作数不是同一类型,会尝试进行类型转换

  • 加号运算符更偏爱字符串;比较运算符更偏爱数字,只有两个数都是字符串时才会进行字符串比较,若一个操作数是NaN,总返回false

  • 大多数情况下 a op= b;等价于a = a op b;当a包含具有副作用的表达式时不等价,eg:data[i++]*=2; data[i++]=data[i++]*2;

  • typeof(NaN)==”number”;

  • delete只能删除对象属性或数组元素,不像C++中用来删除整个对象

    • delete的操作数若不是左值,不进行操作返回true;若删除成功,返回true
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言1   第1 JavaScript概述5   1.1 JavaScript语言核心8   1.2 客户端JavaScript12   第一部分 JavaScript 语言核心   第2 词法结构25   2.1 字符集25   2.2 注释27   2.3 直接量27   2.4 标识符和保留字28   2.5 可选的分号30   第3 类型、值和变量32   3.1 数字34   3.2 文本38   3.3 布尔值43   3.4 null和undefined44   3.5 全局对象45   3.6 包装对象46   3.7 不可变的原始值和可变的对象引用47   3.8 类型转换48   3.9 变量声明55   3.10 变量作用域56   第4 表达式和运算符60   4.1 原始表达式60   4.2 对象和数组的初始化表达式61   4.3 函数定义表达式62   4.4 属性访问表达式63   4.5 调用表达式64   4.6 对象创建表达式64   4.7 运算符概述65   4.8 算术表达式69   4.9 关系表达式74   4.10 逻辑表达式79   4.11 赋值表达式81   4.12 表达式计算83   4.13 其他运算符86   第5 语句91   5.1 表达式语句92   5.2 复合语句和空语句92   5.3 声明语句94   5.4 条件语句96   5.5 循环101   5.6 跳转106   5.7 其他语句类型113   5.8 JavaScript语句小结116   第6 对象118   6.1 创建对象120   6.2 属性的查询和设置123   6.3 删除属性127   6.4 检测属性128   6.5 枚举属性130   6.6 属性getter和setter132   6.7 属性的特性134   6.8 对象的三个属性138   6.9 序列化对象141   6.10 对象方法142   第7 数组144   7.1 创建数组 144   7.2 数组元素的读和写145   7.3 稀疏数组147   7.4 数组长度148   7.5 数组元素的添加和删除149   7.6 数组遍历149   7.7 多维数组151   7.8 数组方法152   7.9 ECMAScript 5中的数组方法 156   7.10 数组类型160   7.11 类数组对象161   7.12 作为数组的字符串163   第8 函数165   8.1 函数定义166   8.2 函数调用168   8.3 函数的实参和形参173   8.4 作为值的函数178   8.5 作为命名空间的函数181   8.6 闭包182   8.7 函数属性、方法和构造函数188   8.8 函数式编程194   第9 类和模块201   9.1 类和原型202   9.2 类和构造函数203   9.3 JavaScript中Java式的类继承207   9.4 类的扩充210   9.5 类和类型212   9.6 JavaScript中的面向对象技术217   9.7 子类230   9.8 ECMAScript 5 中的类239   9.9 模块248   第10 正则表达式的模式匹配253   10.1 正则表达式的定义253   10.2 用于模式匹配的String方法261   10.3 RegExp对象263   第11 JavaScript的子集和扩展267   11.1 JavaScript的子集268   11.2 常量和局部变量271   11.3 解构赋值274   11.4 迭代276   11.5 函数简写285   11.6 多catch 从句285   11.7 E4X: ECMAScript for XML286   第12 服务器端JavaScript290   12.1 用Rhino脚本化Java291   12.2 用Node实现异步I/O297   第二部分 客户端JavaScript   第13 Web浏览器中的JavaScript309   13.1 客户端JavaScript309   13.2 在HTML里嵌入JavaScript313   13.3 JavaScript程序的执行319   13.4 兼容性和互用性326   13.5 可访问性333   13.6 安全性334   13.7 客户端框架339   第14 Window对象341   14.1 计时器342   14.2 浏览器定位和导航343   14.3 浏览历史345   14.4 浏览器和屏幕信息346   14.5 对话框348   14.6 错误处理351   14.7 作为Window对象属性的文档元素351   14.8 多窗口和窗体353   第15 脚本化文档361   15.1 DOM概览362   15.2 选取文档元素364   15.3 文档结构和遍历371   15.4 属性375   15.5 元素的内容378   15.6 创建、插入和删除节点382   15.7 例子:生成目录表387   15.8 文档和元素的几何形状和滚动389   15.9 HTML表单396   15.10 其他文档特性404   第16 脚本化CSS410   16.1 CSS概览411   16.2 重要的CSS属性416   16.3 脚本化内联样式427   16.4 查询计算出的样式431   16.5 脚本化CSS类433   16.6 脚本化样式表436   第17 事件处理440   17.1 事件类型442   17.2 注册事件处理程序451   17.3 事件处理程序的调用454   17.4 文档加载事件459   17.5 鼠标事件461   17.6 鼠标滚轮事件465   17.7 拖放事件468   17.8 文本事件475   17.9 键盘事件478   第18 脚本化HTTP484   18.1 使用XMLHttpRequest487   18.2 借助

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值