关于js基础容易忘记的那些事儿
来源:互联网 发布:ntfs for mac有什么用 编辑:程序博客网 时间:2024/05/16 06:04
1.Number()
通过这个函数转化后的值只有两个:数值和NaN,通过parseInt也能转化为数值,但是像“134df”转化后的值为134,而Number("134df")则是NaN;
2.String()
转化成字符的方法有两种:调用toString()和String(),通过String()转化后有5种类型:字符串;"true"或者"false";null;undefined;数值。
3.逻辑非! 非空非0非对象都是false
! 对象→false
! " "→true
! 非空字符串→false
! 0→true
! 非0数值→false
! NaN→true
! undefined→true
4.逻辑与 &&
- 如果第一个是对象,则返回第二个操作数
- 如果第二个是对象,则只有在第一个是true的情况下才会返回第二个数
- 如果其中一个是null,则返回null
- 如果其中一个是NaN,则返回NaN
- 如果其中一个是undefined,则返回undefined
5.逻辑或 ||
- 如果第一个是对象,则返回第一个操作数
- 如果第一个是false,则返回第二个操作数
- 如果两个都是对象,则返回第一个操作数
- 剩下的NaN,undefined,null和逻辑与一样,不同的是这时需要两个操作数都是NaN或undefined或null
6.关系操作符(>,<,<=,>=)
- 如果两个操作数都是数值,那么直接比较
- 如果了两个操作数都是字符串,则比较字符串对应的字符编码值,并且大写字母的字符编码全部<小写字母的字符编码
- 如果一个操作数是数值,要把另外一个也转化为数值,然后比较
- 如果有一个是对象,则调用该对象的valueOf方法,没有的话调用toString方法,之后根据前面的规则进行比较
- 如果有一个是布尔值,则将其转化为数值进行比较
- 要比较之前 null和undefined不能被转化为其他值
- null = undefined
- NaN跟谁都不相等
- false == 0→true true == 1→true true == 2→false null == undefined→true null == 0→false undefined == 0 →false
7.对象的变量名存放的不是对象而是对象的引用,对象放在堆上面
var obj = new Object();
var obj2 = obj;
obj2.name = "tom";
alert(obj.name);答案是tom,因为在赋值的时候实际上是把指向这个对象的引用赋值给了obj2,所以当其中一个改变时,另外一个的属性值也会改变,因为他们指向的是同一个空间;而var a = 10;
var b = a;则是简单的将a的值赋值给了b;
8.js垃圾收集方式有两种:标记清除 和 引用计数法。现在目前的浏览器大多数使用的是标记清除法,但是ie什么的只有在9之后才算完全使用。因为ie9之前的一些比如dom对象本身采用的是引用计数策略,所以即使使用的是标记清除,也只是除了dom对象之外的其他原生的js对象采用的是这些。在ie9时进行了修复,把dom和bom转化成了原生的js对象,这时才是完全的标记清除。
循环引用:
var elem = document.getElementById("div);
var obj = new Object();
elem.someProperty = obj;
obj.someProperty = elem;因此造成了循环引用,为了解除循环引用我们可以在使用完毕之后将其置为null,即elem.somePropery = null;obj.someProperty = null;
0 0
- 关于js基础容易忘记的那些事儿
- 关于JS制作时钟的那些事儿
- 关于SVN的那些事儿
- 关于乱码的那些事儿
- 关于密码的那些事儿
- 关于编程的那些事儿
- 关于字符串的那些事儿
- 关于产品的那些事儿
- 关于curl的那些事儿
- 关于less的那些事儿
- 关于highcharts的那些事儿
- 那些关于LruCache的事儿
- 关于UIWebView的那些事儿
- 关于display的那些事儿!
- 关于ARP的那些事儿
- 关于BOM的那些事儿
- 关于Fragment的那些事儿
- 关于JAVA的那些事儿
- 今天开博
- session close 或 no session 问题
- 推荐几部打开脑洞的电影
- andrid项目开发导入项目文件出现红色感叹号
- adb常用命令
- 关于js基础容易忘记的那些事儿
- java socket 文件上传下载
- VBA获取某文件夹下所有文件和子文件目录的文件
- oracle 系统表
- 大话设计模式C++实现-第22章-桥接模式
- C#编程如何编写的自动读写配置文件.ini格式
- C#调用C++写的DLL
- OC语言--分类(category)
- java23种常用设计模式之工厂方法模式(Factory Method)