JS-数据类型

数据类型详解

字符串详解

  1. 正常字符串我们使用单引号和双引号包裹(单双并没有区别)

  2. 转意字符正常使用

    \
    \n
    \t
    \u4s2d //Unicode字符
    \x41   //Ascll字符
  3. 多行字符串编写

    使用的是TAB上面的点

        ‘use strict‘;
      //多行字符串的编写
       let msg1=
      `hello
    你好`;
  4. 模板字符串

    使用$符号拼接

    //模板字符串
       let name="yp";
       let age=20;
       let msg2=`${name},我很好`
  5. 字符串长度

    **.lengrh;
  6. 字符串的可变性

    字符串中的字符不可变

    ‘use strict‘;
    let student=‘student‘;
    student[0]=1;
    console.log(student);
    //结果为student
  7. 大小写转换

    转换使用的是方法,不是属性

    student.toUpperCase();
    student.toLowerCase();
  8. 获取下标

    student.indexOf(‘t‘);
    //结果为1
  9. 截取字符串长度

    //这里的()代表的是[),左闭合,右不闭合
    student.substring(1,5);

 

数组详解

JS中的Array可以包含任意数据类型

let arr=[1,2,3,5,4,6,7];
(7) [1, 2, 3, 5, 4, 6, 7]
arr[0]=0;
0
arr;
(7) [0, 2, 3, 5, 4, 6, 7]
  1. 长度

    给arr.length赋值后,数组的大小就会发生变化,赋值小于原来就会丢失元素,大于原来就会在后面添加未定义的值;不建议这样使用

    arr.length=8;
    8
    arr
    (8) [0, 2, 3, 5, 4, 6, 7, empty]
  2. indexOf(),通过元素获取下标

    arr.indexOf(5);
    3
  3. slice()截取Array的一部分,返回一个新数组

    与String中的substring类似

    arr.slice(2)
    (6) [3, 5, 4, 6, 7, empty]
    arr.slice(2,6)
    (4) [3, 5, 4, 6]
  4. push(),pop()

    push();//在尾部压入元素
    pop();//从尾部弹出元素
  5. unshift(),shift()

    unshift();//在头部压入元素
    shift();//从头部弹出元素
  6. 排序sort()

    arr
    (8) [0, 2, 3, 5, 4, 6, 7, empty]
    arr.sort()
    (8) [0, 2, 3, 4, 5, 6, 7, empty]
  7. 元素反转reverse()

    arr
    (8) [0, 2, 3, 4, 5, 6, 7, empty]
    arr.reverse();
    (8) [empty, 7, 6, 5, 4, 3, 2, 0]
  8. 拼接concat()

    concat()没有改变原来的数组,只是返回的了一个新的数组

    (8) [empty, 7, 6, 5, 4, 3, 2, 0]
    arr.concat([‘1‘,‘2‘,‘3‘])
    (11) [empty, 7, 6, 5, 4, 3, 2, 0, "1", "2", "3"]
  9. 连接符join()

    arr.join(‘-‘);
    "-7-6-5-4-3-2-0"
  10. 多维数组

    arr=[[1,2],[2,4],[5,2]];
    (3) [Array(2), Array(2), Array(2)]
    0: (2) [1, 2]
    1: (2) [2, 4]
    2: (2) [5, 2]
    length: 3
     
    arr[1][1];
    4

 

对象类型详解

JS中的对象就是若干个键值对

JS中的所有对象都是字符串,值是任意对象

let 对象名={
  属性名:属性值,  
  属性名:属性值,
  属性名:属性值,
};

let person={
    name:‘yp‘,
    age:20,
    score:0,
    email:‘1351414677@qq.com‘
}

JS中的对象用{...}表示,键值对描述属性 xxx:xxx,多个属性之间用逗号隔开,最后一个属性不加逗号(会存在浏览器不兼容问题)

  1. 对象赋值

person.name=‘雍鹏‘;
"雍鹏"
person.name;
"雍鹏"
  1. 使用一个不存在的对象属性并不会报错

person.max;
undefined
  1. 动态的删减

delete person.score
true
person
{name: "雍鹏", age: 20, email: "1351414677@qq.com"}
  1. 动态添加

直接给新的属性添加数值即可

person.max=‘999‘;
"999"
person
{name: "雍鹏", age: 20, email: "1351414677@qq.com", max: "999"}
  1. 判断属性值是否存在这个对象中

xxx in xxx,使用in会找到父类的方法

20 in person
false
‘20‘ in person
false
age in person
VM350:1 Uncaught ReferenceError: age is not defined
    at <anonymous>:1:1
(匿名) @ VM350:1
‘age‘ in person
true
‘toString in person’
true
  1. 判断一个属性是否是这个对象本身拥有的:hasOwnProperty()

person.hasOwnProperty(‘age‘)
true
person.hasOwnProperty(‘toString‘)
false

 

流程控制

if判断

‘use strict‘;
let age=9;
if(age>3){
    alert(‘爬啊‘);	
}else if{
    alert(‘走‘);
}else{
    alert(‘跑‘);
}

while循环,避免死循环

while(age<70){
    age=age+1;
    console.log(age);
}


do{
    age=age+1;
    console.log(age);
}while(age<70)

for循环

for(let i=0;i<100;i++){
    console.log(i);
}

forEach循环

let age=[1,564,31,5641,61,6];
age.forEach(function(e){
     console.log(e);
});

for..in/for..of

let age=[1,564,31,5641,61,6];
for(let num in age){//打印下标
    if(age.hasOwnProperty(num)){
        console.log(age[num]);
    }
}

for(let x of age){//打印数值
    console.log(x);
}

该方法认识就好,遇到的时候再去查文档

 

Map和Set

两者属于ES6的新特性

遍历Map和Set只能用for...of不能用for...in

用for...in遍历的时候如果在创建之后添加了新的数据,for...in不会显示它的下标,而且显示数值,这是bug

Map:

//ES6 MAP
//学生名字,学生成绩
//let name=[‘Tom‘,‘Jack‘,‘Tim‘];
//let scores=[120,100,90];

let map=new Map([[‘Tom‘,120],[‘Jack‘,100],[‘Tim‘,90]]);
let name=map.get(‘Tom‘);//通过ket获得了value
map.set(‘admin‘,150);//新增或者修改
map.delete(‘Tom‘);//删除

 

Set:无序不重复的集合

let set=new Set[3,1,1,1,]//set可以去重	
set.add(2);//添加
set.delete(1);//删除
console.log(set.has(3));//是否包含某个元素

 

 

JS-数据类型

上一篇:kali linux更新msf 报错Unable to find a spec satisfying metasploit-framework (>= 0) in the set. Perhaps the解决办法


下一篇:AJAX的学习