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.作用域链

  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/qiuyeyaozhuai/p/3444880.html
Copyright © 2011-2022 走看看