• 深入浅出javascript学习笔记


    弱类型的隐式转换:

    32 + 32  // 64
    “32” + 32 // “3232”
    “32” – 32 // 0
    

    #### 巧用+/-规则转换类型: ``` num – 0 // 把变量转换成数字 num + '' // 把变量转换成字符串型 ```
    #### ==: ``` "1.23" == 1.23 // true; 0 == false // true null == undefined // true; new Object() == new Object() // false; [1,2] == [1,2] // false ```
    #### ===: 1.先比较类型,类型不同,返回false 2.再比较值 ``` null === null // true undefined === undefined // true NaN ≠ NaN // == === 均不等
    </br>
    #### 类型检测
    

    typeof function // "function"
    typeof undefined // "undefined"
    typeof new Object // "object"
    typeof [1,2] // "object"
    typeof NaN // "number"
    typeof null // "object" 约定俗成

    
    instanceof 主要判断Object类型
    判断左操作数的原型链上
    
    <br/>
    <br/>
    
    
    ###三、语句
    ####1 block语句、var语句 
     1. 函数有作用域,但是for,if之类的循环是没有块级作用域的
     2. `var a = b = 1 // b在这里相当于创建了一个全局变量`
     &nbsp;正确的写法:`var a = 1, b = 1;`
    

    function foo() {
    var a = b = 1;
    }
    foo();
    console.log(typeof a); // 'undefined';
    console.log(typeof b); // 'number';

    </br>
    
    ####2 函数、switch、循环
    1.函数声明会被前置、函数表达式不会
    例如:
    
    

    f1(); // true
    function f1() {
    // do sth
    return true;
    }

    f2(); // TypeError
    var f2 = function() {
    // do sth
    };

    
    2.for..in循环:
    &nbsp;1、顺序不确定
    &nbsp;2、enumerable为false时不会出现
    &nbsp;3、for in会受原型链的影响(原型链上属性的enumerable为true的话,是会被显示出来的)
    
    3.with语句会修改作用域
    &nbsp;缺点:让Js引擎优化更难;可读性差;可被变量定义代替;严格模式下会被禁用
    </br>
    
    ####3 严格模式
    严格模式是一种特殊的运行模式,它修复了部分语言撒谎那个的不足,提供更强的错误检查,并增强安全性。
    >1. 不允许是用with语句
    >2. 不允许未声明的变量被赋值
    >3. arguments变为参数的静态副本
    >4. delete参数、函数名会报错
    >5. delete不可配置的属性会报错
    >6. 对象字面量重复属性名报错
    >7. 禁止八进制字面量
    >8. eval,arguments变为关键字,不能作为变量、函数名
    >9. eval会独立作用域
    >10. 一般函数调用this(不是对象的方法调用,也不使用apply/call/bind等修改this)指向null,而不是全局对象。若使用apply/call,当传入null或undefined时,this指向null或undefined,而不是全局对象。
    >11. arguments.caller,arguments.callee被禁用
    </br>
  • 相关阅读:
    PHP面试系列之Linux(一) ----- Linux基础
    Redis入门(一)---安装
    获取主机ip地址
    Ubuntu安装Apache
    Ubuntu安装MySQL/MariaDB
    Ubuntu安装PHP7
    shell一次性执行多条命令
    将宿主主机上的目录挂载到Docker中
    bind 仿造 重写bind
    echars 饼状图 轮循 水平翻转
  • 原文地址:https://www.cnblogs.com/Yfling/p/6726450.html
Copyright © 2020-2023  润新知