JavaSrcipt红宝书阅读导图(一)



  • 一、HTML中的JavaScript

    <script>元素

    1. 属性
    • async:立即下载脚本
    • charset:代码字符集
    • defer:延迟加载
    • src:执行代码的外部文件
    • type:内容类型,默认text/javascript
    • language:废弃的属性
    1. 从上至下依次解释

    2. 使用转译字符输出一些特殊符号

    3. 带有src属性的<script>元素不应该在<script></script>间插入函数

    4. 列表标签位置最好在<body>后

    5. 文档模式

    • 混杂模式
    • 标准模式
    • 准标准模式
    1. <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中的数据,参数变量会同步更改
    • 没有重载

 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

Looks like your connection to Dian was lost, please wait while we try to reconnect.