zoukankan      html  css  js  c++  java
  • 重温《js权威指南》 第2-3章

    第二章 语法结构

            2.1 js区分大小写,html不区分大小写

            2.5 注意分号,如果没有分号,解释器会试图解析js,并在不能解析的地方加分号

    第三章 值和变量

            js数据类型分两类:原始类型(数字,字符串,布尔值)和对象类型。

            两个特殊的原始值:undefined,null

            3.1 数字

                js不区分整型和浮点类型,所有数字都是浮点数值

                infinity 最大值  -infinity 最小值

                1/0=infinity ,-1/0=-infinity ,0/0=Nan

                js中的非数字值与任何值都不相等,所以 x==NaN无法判断x是否为NaN,用x!=x

                Math对象,包含常用数字操作

                Date对象,包含日期操作

            3.2 文本

                字符串的长度是其所含16位值的个数

                字符串的常用方法:charAt(),substring(),indexOf(),toUpperCase()

                Regex对象 模式匹配

            3.4 null和undefined

                null是一个特殊的对象,typeof(null)==object,含义是“无值”

                undefined 表明变量未定义,没有初始化。

                    没有返回值的函数返回undefined

                null==undefined ,都表示“值的空缺”

            3.5 全局对象

                当js解释器启动时(任何web浏览器加载新页面时),它将创建一个新的全局对象,并给它一组初始属性:

                      全局属性,比如:undefined,infinity,NaN

                      全局函数,比如:isNaN(),parseInt(),eval()

                      构造函数,比如:Date(),Regex(),String(),Object(),Array()

                      全局对象,比如:Math,JSON

                可以通过别名“Global”来找到这些全局对象

            3.6 包装对象

    var s="asd";
    s.len=4;
    alert(s.len);//undefined,因为s相当于一个临时对象,s.len执行完之后就释放了
    var ss=new String("asd");
    ss.len=4;
    alert(ss.len);//4   ,因为ss是一个对象

            3.7 不可变的原始值和可变的对象引用

                 js的原始值(undefined,null,布尔,数字,字符串)和对象有本质的区别,原始值不可变,注意字符串。

                 原始值的比较是值的比较,对象的比较是引用的比较

            3.8 类型转换

    字符串 数字 布尔 对象
    undefined
    null
    "undefined"
    "null"
    NaN
    0
    false
    false
    throw TypeError
    throw TypeError
    true
    false
    "true"
    "false"
    1
    0
      new Boolean(true)
    new Boolean(false)
    ""
    "1.2"
    "one"
      0
    1.2
    NaN
    false
    true
    true
    new String("")
    new String("1.2")
    new String("one")
    0
    -0
    NaN
    Infinity
    -Infinity
    1
    "0"
    "-0"
    "NaN"
    "Infinity"
    "-Infinity"
    "1"
      false
    false
    false
    true
    true
    true
    new Number(0)
    new Number(-0)
    new Number(NaN)
    new Number(Infinity)
    new Number(-Infinity)
    new Number(1)
    {}(任意对象)
    [](任意数组)
    [9](一个数字元素)
    ['a'](其他数组)
    function(){}

    ""
    "9"
    使用join方法

    0
    9
    NaN
    NaN
    true
    true
    true
    true
    true
     

           

            3.8.3 对象转换为原始值

                1.默认的toString()方法

                2.特定版本的toString()。如,函数类返回这个函数的实现,日期类返回日期和时间,RegExp类返回正则表达式直接量

            3.10 变量作用域

                1.函数作用域替代块级作用域

                2.变量提前声明

    var scope="全局"

    function a(){

        alert(scope);//输出undefined

        var scope="局部";

        alert(scope);//输出"局部"
    }

    a();

                 3.使用var声明一个全局变量时,这个属性是不可配置的无法delete.而用一个未声明的变量赋值的话,js会自动创建一个全局对象的可配置的属性

                 4.作用域链

  • 相关阅读:
    Spring之调度器(Scheduler)
    Spring之拦截器(Interceptor)
    ThreadLocal相关
    hibernate操作数据库
    文件操作的工具类
    日期操作工具类
    有关mysql的utf8和utf8mb4,以及Illegal mix of collations for operation 'like'
    [原]nginx 一下快一下慢的问题
    再谈微信公众号网页授权的40163错误
    用DBCC CHECK修复SQL2000的数据库一致性问题
  • 原文地址:https://www.cnblogs.com/qiuyeyaozhuai/p/3444880.html
Copyright © 2011-2022 走看看