说明
最近5年一直从事后端开发和系统架构工作,虽然早年是个全栈工程师,现在很多细节也已忘记。现在重新学习记录随笔,只记下自己觉得有必要记录的内容,过于基础或者显而易见的知识,就不再赘述了。
数据类型
js是一个弱类型语言,变量通过var关键字声明变量,不需要像java一样定义变量类型。
var v1 = 10;
var v2 = “hello”;
尽管不用声明类型,但v1和v2的确是不同类型的变量,js会根据赋值判断出变量类型。
js中默认有以下基本类型:
- boolean
- number
- string
- object
- function
- undefined
前3个很好理解,就不说了。除此之类,几乎所有有赋值的变量其类型都是object。如果没有赋值,那么该变量就是undefined。
js中通过typeof运算符获取类型。
var o1 ;
console.log(typeof o1);//输出undefined
var o2 = {};
console.log(typeof o2);//输出object
var o3 = function(){
return "f";
}
console.log(typeof o3);//输出function
var o4 = null;
console.log(typeof o4);//输出object
o4很奇葩是不,null的类型是object?嗯全世界都这么认为,但是js里null和undefined就是不一样,前者会占据一个内存,表示这个变量是null,所以它的类型是object。
再通俗一点,null表示我赋值了,值就是null,因为有赋值,所以类型是object;而undefined纯粹表示没有赋值,这就是两者的区别。
除此之类,还有Date、Array等类型,但是它们的typeof运算符都返回object。所以记住这句话,js中所有的都是对象,包括string、number、boolean、function(尽管typeof返回的不是object)。
对象自然有属性和方法。对于上述各类对象,只是属性和方法不同罢了。
好了,我觉得理解了类型、对象等基本概念,再加上本就熟悉的语法知识,js最基本的对象算是温习一遍了。但是要做到熟练,还得熟悉基本类型对象的属性和方法。
以下贴出一些基本类型的在线学习网站页面:
string
https://www.runoob.com/js/js-obj-string.html
number
https://www.runoob.com/js/js-obj-number.html
boolean
https://www.runoob.com/js/js-obj-boolean.html
date
https://www.runoob.com/js/js-obj-date.html
array
https://www.runoob.com/js/js-obj-array.html
希望读者至少过一遍,即使记不住也没关系,先混个眼熟。以后自己写代码或者读别人代码遇到不懂的地方,回过头也知道在哪里查资料。