javascript深入浅出 基础

 

数据类型

    六种数据类型:

        number

        string

        boolean

        null

        undefined

        object

    隐式转换:

        巧用+和-

            num-0    转换为数字

            num+''    转换为字符串

        ===

            null===null

            undefiend=undefined

            NaN ≠ NaN

            new Object ≠ new Object

        类型比较转换原则

            字符串转数字

            布尔转数字

            对象转基本类型

    包装对象:

        三种包装类型


            number

            string

            boolean


        可以调用对象属性

        设置属性不生效,可以使用new 对象()

    类型检测:

            typeof    

                基本类型和function

            [[Class]]

                Object.prototype.toString.apply(变量)

                获取内置对象的基元类型    [Object Date],[Object Array],[Object Object]

            instanceof

                判断对象是否属于某个类


表达式和运算符

    表达式:    能计算出值得程序单元

        原始表达式

        初始化表达式

        函数表达式

        属性访问表达式

        调用表达式

        对象创建表达式

    运算符:

        赋值

        算术

        字符串

        比较

        逻辑

        位

        特殊

            条件运算符

            逗号运算符

            delete

            in

            instanceof

            typeof

            new

            this

            void


语句

    函数,for...in,with:

        函数定义方式

            函数声明    任何地方可调用

            函数表达式    后面才能调用

        for...in

            顺序不确定

            enumerable 为false不出现

            受原型链影响

        with

            传入对象,在块语句中可以把属性当变量使用

            让js引擎优化更难

    try-catch:

        try

            尝试执行

            出现一个异常就退出try

        catch

            捕捉和处理异常

        throw

            自定义异常

1
throw '未定义';

        finally

            最终执行,肯定会执行

            感觉意义不大

        示例
1
2
3
4
5
6
7
try{
    console.log(str);
catch(err){
    console.log(err);
} finally {
    console.log('finally');
}


    严格模式:

        作用

            语法更合理,更严谨

            提供更强的错误检查,提供安全性

        使用方式 'use strict'

            放在文件头部

            放在函数中

        使用范围

    ​    ​    ​不允许with

    ​    ​    ​不允许 delete 函数参数

    ​    ​    ​不允许8进制字面量

    ​    ​    ​eval,arguments变为关键字,不能做变量

 
posted @ 2017-03-02 19:36  前望  阅读(108)  评论(0编辑  收藏  举报