JavaSrcipt红宝书阅读导图(一)
-
一、HTML中的JavaScript
<script>元素
- 属性
- async:立即下载脚本
- charset:代码字符集
- defer:延迟加载
- src:执行代码的外部文件
- type:内容类型,默认text/javascript
- language:废弃的属性
-
从上至下依次解释
-
使用转译字符输出一些特殊符号
-
带有src属性的<script>元素不应该在<script></script>间插入函数
-
列表标签位置最好在<body>后
-
文档模式
- 混杂模式
- 标准模式
- 准标准模式
- <noscript>标签用于显示不支持JavaScript的内容
二、基本概念
1. 语法
- 区分大小写
- 标识符
-
- 第一个字符必须是字母、下划线(_)或美元符号($)
-
- 其他字符可以是字母、下划线、数字、美元符号
-
- 驼峰大小写格式
- 注释
-
- //
-
- /**/
- 语句
-
- 语句结尾的分号可以选用
-
- 语句块使用花括号{}
2. 关键字和保留字
3. 变量
- 松散类型,可以保存任何类型的数据
- var在函数语句块中是局部变量,在外部无效
- 在函数中不使用var的变量,是全局变量
4. 数据类型
- 基本数据类型
-
- Undefined
-
- Null
-
- Boolean
-
- Number
-
- String
- 复杂数据类型
-
- Object
- typeof
-
- undefined
-
- boolean
-
- string
-
- number
-
- object
-
- function
-
- 注:typeof (null)=="object" //true
- Undefined
-
- 声明变量未赋值
-
- 没有声明的变量,typeof为undefined
- Null
-
- Null代表空对象指针
-
- undefined派生自Null
-
- null==undefined //true
- Boolean
-
- 数据类型的转换规则
- Number
-
- 整数
-
- 十进制
-
- 0开头八进制,不符合的转换为十进制
-
- 0x开头十六进制
-
- +0与-0相等
-
- 浮点数
-
-
- .1可取
-
-
-
- 如果没有小数位,自动转换成整数
-
-
-
- 极大极小数用e表示法
-
-
-
- 不要测试某个特定的浮点数值
-
-
- 数值范围
-
-
- Number.MIN_VALUE
-
-
-
- Number.MAX_VALUE
-
-
-
- Infinity,-Infinity
-
-
-
- NaN
-
-
-
-
- NaN==NaN //false
-
-
-
-
-
- isNaN
-
-
-
-
-
-
- 返回是否“不是数值”
-
-
-
-
-
-
-
- isNaN(NaN) //true
-
-
-
-
-
-
-
- isNaN(10) //false
-
-
-
-
-
-
-
- isNaN("10") //false
-
-
-
-
-
-
-
- isNaN("Blue") //true
-
-
-
-
-
-
-
- isNaN(true) //false
-
-
-
-
-
-
-
- 适用于对象
-
-
-
-
-
-
-
-
- 先调用对象的valueOf方法,确定是否可以转为数值,不行再调用toString方法转换为字符串,确定是否可以转为数值
-
-
-
-
-
- 数值转换
-
-
- Bolean转为0、1
-
-
-
- null返回0
-
-
-
- undefined返回NaN
-
-
-
- 字符串
-
-
-
-
- 只有数字,至多一个小数点,可以以“-”开头
-
-
-
-
-
- 开头0,忽略
-
-
-
-
-
- 开头0x,转换成十进制
-
-
-
-
-
- 空字符串,返回0
-
-
-
-
-
- 其他情况返回NaN
-
-
-
-
- 对象
-
-
-
-
- 先调用对象的valueOf方法,确定是否可以转为数值,不行再调用toString方法转换为字符串,确定是否可以转为数值
-
-
-
-
- parseInt(string, base)
-
-
-
-
- 忽略空格,解析到其他字母或结尾为止
-
-
-
-
-
- parseInt(22.5) //22
-
-
-
-
-
- parseInt("1234blue") //1234
-
-
-
-
-
- parseInt("070") //56
-
-
-
-
-
- parseInt("") //NaN
-
-
-
-
-
- parseInt("10", 10) //10
-
-
-
-
-
- parseInt("10", 16) //16
-
-
-
-
- parseFloat
-
-
-
-
- 可以返回浮点数,整数
-
-
- String
-
- 单双引号,左右匹配
-
- length属性
-
- 使用“+”号拼接
-
- 字符串的值是不可改变的,要改变就要先销毁
-
- toString
-
-
- null和undefined没有这个方法
-
-
-
- 10.toString() //"10"
-
-
-
- 10.toString(2) //"1010"
-
-
-
- 10.toString(8) //"12"
-
-
-
- 10.toString(10) //"10"
-
-
-
- 10.toString(16) //"a"
-
-
- String()
-
-
- String(null) //"null"
-
-
-
- 、tring(undefined) //"undefined"
-
-
-
- String(true) //"true"
-
- Object
5. 操作符
- --、++
-
- 对于字符串,先转换成数值
-
- 对于布尔值,先转换成数值
-
- 对于浮点数,+-1
-
- 对于对象,先valueOf或toString转换为数值
- -、+
-
- 先转为数值,然后取正负数
- 位操作符
-
- ~、&、|、^、<<、>>、<<<、>>>
- 逻辑操作符
-
- !、&&、||
-
- 短路操作
-
- &&
-
-
- 有一个是null,返回null
-
-
-
- 有一个是undefined,返回undefined
-
-
-
- 有一个是NaN,返回NaN
-
-
-
- 都是对象,返回第二个对象
-
-
- ||
-
-
- 如果第一个数为false,返回第二个操作数
-
- *
-
- Infinity*0 //NaN
- /
-
- 0/0 //NaN
-
- 1/0 //Infinity
- +
-
- 加法,拼接字符串
-
- 5+"5" //"55"
-
- "the sum of 5 and 10 is " + 5 + 10 //"the sum of 5 and 10 is 510"
-
- "the sum of 5 and 10 is " + (5 + 10) //"the sum of 5 and 10 is 15"
- 比较运算符
-
- 比较大小
-
- 字符串按编码比较大小
-
- NaN与任何数比较都是false
-
- "23" < 3 //false
-
- "23" < "3" //true
-
- "a" < 3 //false
-
- 相等
-
-
- "55" == 55 //true
-
-
-
- "55" === 55 //false
-
- ?:
- 赋值
- ,
6. 语句
- if-else
- do-while
- while
- for
- for-in
-
- 枚举对象属性
- label
- break、continue
- with
-
- 将代码作用域设置到一个特定的对象中
-
- 不建议使用
- switch
-
- switch中可以是表达式
-
- case中可以是表达式
-
- case的等于比较是全等
7. function
- 不必指定返回值
- 可以通过arguments数组来获取函数参数,因此不必指定参数个数
- 修改arguments中的数据,参数变量会同步更改
- 没有重载