弱类型的隐式转换:

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>

深入浅出javascript学习笔记的更多相关文章

  1. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  2. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  4. Java程序猿的JavaScript学习笔记(3——this/call/apply)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  5. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  6. Java程序猿JavaScript学习笔记(14——扩大jQuery UI)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  7. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  8. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  9. JavaScript学习笔记[0]

    JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...

随机推荐

  1. 安卓TV开发(概述) 智能电视之视觉设计和体验分析

         转载说明出处 :http://blog.csdn.net/sk719887916, 作者:skay 前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居,以及可穿戴设备的大 ...

  2. 最新App Store审核10大被拒理由

    最近,苹果在官网给出了截至2015年2月份应用被拒绝的十大理由,其中50%以上的应用被拒绝都是因为这10个原因,其中7个理由和2014年相同,其中排名前三的原因分别是:需要补充更多信息.存在明显的bu ...

  3. linux下的系统垃圾清理

    sudo apt-get autoclean --清理旧版本的软件缓存 sudo apt-get clean--清理所有软件缓存 sudo apt-get autoremove--删除系统不再使用的孤 ...

  4. obj-c编程16:键值编码(KVC)

    我们可以借助obj-c中的键值编码(以后简称KVC,Key-Value Coding)来存取类的属性,通过指定所要访问的属性名字符串标示符,可以使用存取器方法来获取或设置类的属性.下面的例子,借助于K ...

  5. Docker 单主机网络

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 当容器逐步向容器集群,容器云技术演进的时候,一个不得不面对的问题就是各 ...

  6. scrollWidth,clientWidth与offsetWidth的区别

    scrollWidth  是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度). clientWidth  是对象可见的宽度,不包滚动条等边线,会随窗口的显 ...

  7. 不同场景下使用CSS隐藏元素

    使用 CSS 让元素不可见的方法很多,剪裁.定位到屏幕外.明度变化等都是可以的.虽然它们都是肉眼不可见,但背后却在多个维度上都有差别. 元素不可见,同时不占据空间.辅助设备无法访问.不渲染 使用 sc ...

  8. minimun path sum(最小路径和)

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  9. php namespace与use

    实验代码 ~/aa.php ~/bb.php 1.命名空间与文件加载的关系 本人在命名空间与文件加载上一直有一个误区,用了命名空间文件不用加载了? 实验1:去掉requre语句 可以看到就算使用命名空 ...

  10. Day15 jss整体结构梳理

    JS DOM--- 两个步骤: 1 查找标签 (1)直接查找 document.getElementById("idname") // dom对象 document.getElem ...