JS数据类型

弱思 2020-06-06

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)
}

相关推荐