最近每天都抽出时间看犀牛书,明显可以感觉到和以前看的时候有差别,阅读能力和心得有了很大的提升,以前不明白的一些知识点,还有一些隐藏在细节中的知识,现在都可以领悟到了。
1、包装对象
暂时性的包装对象
js数据类型分为原始数据类型和引用数据类型,原始类型包含number,string,boolean等;
我们都知道,直接使用字面量来声明一个变量,并且给它赋值一个字符串,那么这个变量不具备对象的属性和方法;
var str='wangze';
str.len=4;
typrof(str) //string
console.log(str.len) //undefined
上面这个栗子说明,我们可以给原始类型值赋予属性,此时js会将它作为一个包装对象对待,但之后js会将对象删除,所以输出它的属性值则为undefined。我们将这种对象称为暂时性的包装对象。
永久性的包装对象
想要给字符串添加属性的办法,就只能将它转换为对像,下面例子说明:
var str=new String('wangze');
str.len=4;
typeof(str) //object
console.log(str.len) //4
这便是永久性的包装对象
2、js里面的一些全局常量
Math和JSON是js的全局对象的属性对象
Number(),String(),Boolean(),Date()等是js的全局构造器(也被称为全局类)
undefined,infinity,和NaN是js的全局属性
parsInt(),eval(),和isNaN()是js的全局函数
获取全局对象的方式:
var a=this;
3、运算符的巧妙使用
在一些代码中经常看到别人这样写
a+' ';
+a;
回去查了一下,第一个是将a转化为字符串,
第二个是将a转化为数字;作用和
a.toString()
Number(a)
相同;
4、js对象的toString方法和valueOf方法很重要。今天回去看一下,明天写心得