此时正徘徊在找工作的途中,闲暇之余,从头梳理一下JS巩固自己,也为需要的人提供一份资料。
技术一般,能力有限,有什么错的地方还望大家指正。
数据类型
JS是一种弱类型的语言,至今一共有7种数据类型:
1、Boolean,布尔值类型,一共就只有两个值,true或者false,定义一个布尔值:
<pre>var flag = true;</pre>
2、Number,数字类型,表示数字,3,3.1,3.14这些都是Number的类型,JS不想其他语言一样有long,int,float,double这样的细分,定义一个数字:
<pre>var age = 23;</pre>
3、String,字符串类型,表示一个字符串,类似"张三","23"这样的值,定义一个字符串:
<pre>var name = "张三";</pre>
4、null,表示为空,它只有一个值就是null,定义一个null类型的值:
<pre>var obj = null;</pre>
5、undefined,表示未定义,当我们声明了一个变量,但是没有赋值的时候这个变量的值就是undefined,例如:
<pre>
var _val;
console.log(_val)//undefined
</pre>
6、Symbol,在ES6中诞生的一种类型,它表示一个唯一值,创建一个Symbol类型的值:
<pre>
var _val = Symbol();
console.log(_val);//Symbol()
</pre>
Symbol可以接收一个参数,通常称为描述,因为任何一个Symbol的值打印出来都是Symbol(),传入一个参数我们就可以对其进行区分,再次声明Symbol()创建出来的是唯一值:
<pre>
var a = Symbol("a");
var b = Symbol("b");
console.log(a);//Symbol(a)
console.log(b);//Symbol(b)
a==b;//false
</pre>
更多关于Symbol知识可以查阅资料
7、Object,对象类型,函数,数组,JSON都是对象类型,对象类型最突出的特点就是可以设置属性,我们可以把他类比成一个数据集合,定义一个对象:
<pre>
var me = {};
me.age = 23;
me.sex = "man";
</pre>
变量声明
我们可以通过var、let、const来声明一个变量,let和const是ES6中新加入的变量声明方式。
使用var声明的变量会触发变量提升这一机制,而let和const声明的变量则不会变量提升,var使用:
<pre>
var _str = "hello JS";//声明一个字符串
var _num = 23;//声明一个数字
var _arr = [];//声明一个数组
var _obj = {};//声明一个对象
var _flag = true;//声明一个布尔值
</pre>
let作用是可以声明一个块级作用域,在let出现之前JS只存在函数作用域和全局作用域,而在有了let之后才出现块级作用域,在一些方面方便了我们的使用,我们先用var声明一个变量:
<pre>
var a = 1;
if(true){
var a = 2;
}
console.log(a);//2
</pre>
然后使用let来声明:
<pre>
var a = 1;
if(true){
let a = 2;
}
console.log(a);//1
</pre>
let声明的变量只在其块级范围内有效,在上面的代码中只在{***}中有效,另外通过var声明的变量我们可以通过window对象来进行访问,而使用let声明的对象我们是不能通过window来访问的:
<pre>
var a = 1;
let b = 2;
window.a;//1
window.b;//undefined
</pre>
const表示声明一个常量,常量即最终值,一旦创建之后就不能被修改,例如:
<pre>
const a = 1;
a = 2;//对a重新赋值会报错
</pre>