数据类型(JavaScript)

suaxi
2020-12-08 / 0 评论 / 81 阅读 / 正在检测是否收录...

1.1 字符串

1、正常字符串使用单引号或双引号包裹

2、转义字符 \

\'
\n
\t
\u4e2d    \u#### Unicode编码
\x41    AscII码

3、多行字符串

<script>
    'use strict'
    var msg = `
        hello
        world
        test`
</script>

4、模板字符串

<script>
    'use strict'
    let name = "孙笑川";
    let age = 30;
    let mgs = `你好,${name}`
</script>

5、字符串长度

console.log(str.length)

6、字符串的可变性,不可变

字符串的可变性,不可变.png

7、大小写转换

str.toUpperCase(); //大写
str.yoLowerCase(); //小写

8、student.indexOf('t'); //在student字符串中,t是第几个元素 //第1个

9、substring

[a,b) //a <= str < b
student.substring(1); //从第一个字符串截取到最后一个字符串
student.substring(1,3); //[1,3) 

1.2 数组

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

var arr = [1,2,3,4,5,6]; //通过下边元素取值和赋值
arr[0];
arr[0] = 1;

1、长度

arr.length

注:如果给arr.length赋值,数组的大小就会发生变化,如果赋值过小,数组里原本的元素就会丢失

2、indexOf,通过元素获得下标索引

arr.indexOf(2);

注:字符串的"1"和数字 1 是不同的

3、slice() 截取Array的一部分,返回一个新的数组,用法类似于substring

4、push()、pop() 尾部

push:压入元素到尾部
pop:弹出尾部的元素

push()、pop().png

5、unshift()、shift() 头部

unshift:压入元素到头部
shift:弹出头部的元素

unshift()、shift().png

6、排序 sort()

arr
(3) [2, 1, 3]
arr.sort()
(3) [1, 2, 3]

sort().png

7、元素反转 reverse()

reverse().png

8、拼接 concat()

(3) [3, 2, 1]
arr.concat(["A","B","C"])
(6) [3, 2, 1, "A", "B", "C"]
arr
(3) [3, 2, 1]

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

9、连接符 join

arr
(3) [3, 2, 1]
arr.join('-')
"3-2-1"

打印拼接数组,使用特定的字符串连接

10、多维数组

arr = [[1,2],[3,4],[5,6]];
arr[1][0]
3

1.3 对象

var 对象名 = {
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}

var person = {
    name:"sun",
    age:3,
    address:"kunming"
}

在js中,{……}表示一个对象,以键值对的形式描述属性 xxx:xxx,每一个属性末尾以逗号隔开,最后一个属性不加逗号

==JavaScript中所有的键都是字符串,值是任意对象==

1、对象赋值

person.name = "yaoshui"
"yaoshui"
person.name
"yaoshui"

2、使用一个不存在的对象属性,不会报错

person.email
undefined

3、动态的删减属性 delete

delete person.name
true
person

4、动态的添加,直接给新的属性添加值即可

person.email = "xxx@qq.com";
"xxx@qq.com"
person

5、判断属性值是否在对象中 xxx in xxx

'age' in person
true

//继承
'toString' in person
true

6、判断一个属性是否是对象本身就存在的

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

1.4 流程控制

if判断

var age = 3;
if(age)>3{
    alert("哈哈");
}else {
    alert("哭哭");
}

while循环,避免程序死循环

var age = 3;
while(age<100){
    age = age +1;
    console.log(age);
}

for循环

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

forEach循环

ES5.1引入
var age = [1,2,3,4,5];

//函数
age.forEach(function(value){
    console.log(value);
})

for...in

<script>
    'use strict'
    var age = [1,2,3,4,5,6];

    /*
    * for(Type str:el) java
    * for(var index in object){} javascript
    */
    for (var num in age){
    if (age.hasOwnProperty(num)){
    console.log(age[num]);
        }
    }
</script>

1.5 Map和Set

ES6的新特性

1、Map

<script>
    'use strict'
    //ES6
    //统计学生成绩、名字
    // var name = ["孙笑川","药水哥","Giao哥"];
    // var score = [100,99,98];

    var map = new Map([['孙笑川',100],["药水哥",99],["Giao哥",98]]);
    var name = map.get("孙笑川"); //通过key获得value
    map.delete("药水哥"); //删除
    map.set("admin",101); //新增或修改
    console.log(name);
</script>

2、Set:无序不重复的集合

set.add(2); //添加
set.delete(1); //删除
console.log(set.has(3)); //是否包含某个元素

1.6 iterator

ES6新特性

1、遍历数组

//通过for of实现便利数组
//for in是打印输出下标
var arr = [1,2,3,4];
for (let values of arr){
console.log(values);
}

2、遍历Map

var map = new Map([['孙笑川',100],["药水哥",99],["Giao哥",98]]);
for (let values of map){
    console.log(values);
}

3、遍历Set

var set = new Set([3,1,7,7,9,7]);
for (let values of set){
    console.log(values);
}
0

评论 (0)

取消