js基础原理
http://www.cnblogs.com/wangfupeng1988/p/3977987.html
1.js中的对象到底是什么?
js中对象本身就是一个Map,里面只有键值对,除此之外,啥也没有!
2.js的基本类型有哪些?
js的基本类型有6种:String、number、Boolean、Symbol、undefined、null
与java相比,String和Boolean含义基本没有变,boolan只能是双精度浮点数,就是java中的double。Symbol相当于uuid:代表独一无二的值。
3。js中哪些是对象?
js中出了这6个基本数据类型外,其他一切都是对象。
4.函数的定义
有两种:声明的方式和表达式的方式
声明的方式
function fool(a,b){
return a+b;
}
表达式的方式:
var fool = function(a,b){
return a+b;
}
5.js对象的创建
1、{}
例如:var={name:'hy',age:28}
2、除了6种基本数据类型外,其他的一切都是对象
所以,创建函数本身就是创建对象
函数可以被直接调用,也可以通过new来创建对象(注意:只有通过函数创建的对象才能new,这与构造函数有关,具体不清楚,望指点)
当函数有返回值,并且返回值是一个对象时,返回的是这个对象;如果返回值是基本类型、或者没有返回值,返回的是这个函数本身。因为new之后得到的必须是一个对象(具体原因请解释)
6.js中对this的理解
使用this首先要搞清楚这个this指的是谁。参考文章: http://www.jianshu.com/p/938aedb0f871
7.js的作用域
js的作用域:分为全局作用域和局部作用域
函数外的就是全局作用域,函数内的就是局部作用域,他是以函数为界限的,javascript没有块级作用域,所以对于for之类的,其内外都是一个作用域。
其实,你光知道“javascript没有块级作用域”是完全不够的,你需要知道的是——javascript除了全局作用域之外,只有函数可以创建的作用域。
所以,我们在声明变量时,全局代码要在代码前端声明,函数中要在函数体一开始就声明好。除了这两个地方,其他地方都不要出现变量声明。而且建议用“单var”形式。 比如:var a,b,c;