JS数据类型
Posted wn-888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
}
以上是关于JS数据类型的主要内容,如果未能解决你的问题,请参考以下文章
谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js