JS数据类型
1.数据类型
运算符
变量
var = ES6 let= 区别 : 作用域不同
NUmber
? js 不区小写和整数, Number
字符串
? ‘abc‘,"abc"
布尔值
true , false
逻辑运算
&& 两个都为真,结果为真 || 一个为真,结果为真 ! 真即假,假即真
比较运算符
= == 等于(类型不一样,值一样,也会判断为true) === 绝对等于(类型一样,值一样,结果为true)
这是js的一个缺陷,坚持不要使用 == 比较
须知:
- NaN===NaN,这个与所有的值都不相等,包括自己
- 只能通过isNaN(NaN)来判断这个数是否为NaN
null 和 underfined
- null 空
- underfined 未定义
对象
对象是大括号,数组是中括号
? 每个属性之间使用逗号隔开,最后一个不需要添加
//Person person = new Person(1, 2,3,4); var person = { name:"nihao" age = 3 tags:[‘js‘,‘java‘,‘python‘,‘web‘] }
字符串
1.正常字符串我们使用 单引号,
2.注意转义字符 \
3.多行字符串编写
//在tab 上面 esc键下面 var msg= `hello world 你好呀 你好`
4.模块字符串
//tab 上面 esc键下面 let name = "zhangsan" let age = 3; let msg = `你好呀,${name}`
5.字符串的长度
str.length
6.字符串的可变性,不可变
7.大小写转换
//注意 这里是方法,不是属性 student.toUpperCase()
8.student.indexOf("t")
? 获取t元素的下标
9.substring
[) student.substring(1) //从第一个字符串截取到最后一个字符串,包括第一个,b student.substring(1.3) //从第一个字符串截取,包括1,不包括3
数组
1.长度
arr.length
注意: 加入arr.length赋值,数组大小就会发生改变,如果赋值国小,元素就会丢失
2.indexOf,通过元素下标获取索引
arr.indexOf(2)//获取元素2的下标
字符串的 "1"和数字 1 是不同的
3.slice() 截取Array的一部分,返回一个新数组,类似于String中的substring
4.push() , pop() 尾部
push: 加入到尾部 pop: 弹出尾部的一个元素
5.unshift() , shift() 头部
unshift: 加入到头部 shift: 弹出头部的一个元素
6.排序用sort()
["b","a","c"] arr.sort() ["a","b","c"]
7元素反转reverse()
["a","b","c"]c arr.reverse() ["c","b","a"]
8.concat()
["a","b","c"] arr.concat([1,2,3]) ["a","b","c",1,2,3] arr ["c","b","a"]
注意: concat()并没有修改数据,只是会返回一个新数组
9.连接符join
打印拼接数组,使用特定的字符串连接
["a","b","c"] arr.join("-") "a-b-c"
10.多维数组
数组: 存储数据 (如何存,如何取, 方法都可以自己实现!)
对象
若干个键值对
var 对象名 = { 属性名: 属性值 属性名: 属性值 属性名: 属性值 } // 定义了一个person对象,他有四个属性! var person = { name : "zhangsan", age : 2, score:0 }
js中对象, {}表示一个对象, 键值对描述属性xxx:xxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!
1.对象赋值
person.name = "张三" "zhangsan" person.name "张三"
2.使用一个不存在的对象属性,不会报错! underfined
person.haha underfined
3.动态的删减属性,通过delete 删除对象的属性
delete person.name true person
4.动态的添加,直接给新的属性添加值即可
person.hahah = "hahah" "hahah"
5.判断属性值是否在这个对象中! xxx in xxx!
‘age‘ in person true //继承 ‘toString‘ in person true
6.判断一个属性是否是自身拥有的的hasOwnProterty()
person.hasOwnProterty(‘toString‘) false person.hasOwnProterty(‘age‘) true
流程控制
if判断
while循环,避免程序死循环
for循环
forEach循环
var age = [12,23,45,36,56,88]; //函数 age.forEach(function(value){ console.log(value) })
Map和Set
ES6的新特性~
Map:
/* ES6 Map 学生的成绩,学生的名字 var names = ["tom","jack","haha"]; var scores = [100,90,80]; */ var map = new Map([[‘tom‘,100],["jack",80]["haha",80]]); var name - map.get(.tom);//通过key获取value map.set(‘admin‘,123456);//新增或修改 map.delete("tom");//删除
Set: 无序不重复的集合
set.add(2);//添加 set.delete(1);//删除 set.has(3); //是否包含某个元素
遍历数组
//通过for of 或 for in + 下标 var arr = [3,4,5] for(var x of arr){ console.log(x) }
遍历map
var map = new Map([[‘tom‘,100],["jack",80]["haha",80]]); for(let x of map){ console.log(x) }
遍历set
var set =new Set([5,6,7]); for(let x of set){ console.log(x) }
相关推荐
yangkang 2020-11-09
lbyd0 2020-11-17
sushuanglei 2020-11-12
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
lizhengjava 2020-11-13
星月情缘 2020-11-13
huangxiaoyun00 2020-11-13
luyong0 2020-11-08
腾讯soso团队 2020-11-06
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gaobudong 2020-11-04
wwwjun 2020-11-02
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30