Js基本语法与小结

3.1、 字符串

在JavaScript中既可以用单引号表示字符串也可以用单引号,没用字符型,字符型就是长度为一的字符串,且字符串与String一样不可变性,(Java中StringBuffer与StringBuilder时可变的),但是在JavaScrpit可以用像数组一样从字符串中取值。

let a = [1,2,3,4,5,6];
a[1] = 2;
a.length() = 6;
a.indexof(2);//返回下标1
a.subString(1);//从下标为1的地方开始返回字符串
a.subString(1,3);//左闭右开,返回2,3子串

==这个符号不区分数据类型,只要数值一样就为true

console.log('1' == 1);//true

局部变量建议都使用let去定义,var相当于定义全局变量。

'use strict'; 严格检查模式,预防JavaScript的随意性导致产生的一些问题。且必须写在Script的第一行。

3.2、 数组

Array可以包含任意的数据结构,柔性数组

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

var arr = [1,2,3,4,5,6]

1.长度

arr.length

注意:加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失

2.indexOf(),通过元素获得下标。

arr.lengthOf(2);
1

3.slice() 截取Array的一部分,返回一个新数组,类似于String中的subString

4.push(),pop() 尾部

震惊,这个玩意竟然和用栈一摸一样,后进先出

push():压入到尾部

pop():弹出尾部的一个元素

let arr = [1,2,3,4,5,6,"1","2"];
arr.push("a","b");
arr
arr = [1,2,3,4,5,6,"1","2","a","b"];
arr.pop('b');
arr.pop('a');
arr
arr = [1,2,3,4,5,6,"1","2"];

5.unshift(),shift()头部

震惊,这个东西和队列的用途一摸一样

unshift(): 将元素压入到头部

shift():弹出头部的一个元素

let arr = [1,2,3,4,5,6,"1"];
arr.unshift('a','b');
arr
arr = ['a','b',1,2,3,4,5,6,"1"];
arr.shift('a');
arr = ['b',1,2,3,4,5,6,"1"];

6.排序sort()

7.与Java一样元素反转reverse()

8.concat() 拼接一个数组,并返回新的数组,并不会改变原来的数组

里面输入一个数组,返回的数组会在原数组的基础上尾部增加参数数组的元素

let arr = ["C","B","A"];
let b = arr.concat([1,2,3]);
b = ["C","B","A",1,2,3];

9.连接符join

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

arr["C","B","A"];

arr.join('-');

"C-B-A"

10.多维数组

与Java一样

arr[[1,2],[2,3],[5,6]];

3.3、对象

若干个键值对

var 对象名 = {
    属性名: 属性值,
    属性名: 属性值,
    属性名: 属性值,
    属性名: 属性值
}
//定义了一个person对象,它有四个属性!
var person = {
    name: "kuangshen",
    age:3,
    email:"24736743@qq.com",
    score: 0
}

Js中对象,键值对描述属性,XX: xx,多个属性之间使用逗号,最后一个属性不加逗号!

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

1.对象赋值

跟java一样 person.name = "哈哈"

2.使用一个不存在的对象属性,不会报错!会报undefined未定义

例如:person.haha

undifined

3.动态的删减属性,通过delete删除对象的属性

delete person.name;
true

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

person.haha = "haha";
在person对象中自动新添属性haha

5.判断属性值是否在这个对象中! xx in xx 除了写的那些属性,还继承了许多属性,在prototype里面

'age' in person;
true
//继承
'toString' in person
true

6.判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

person.hasOwnProperty('age');
false

3.4、流程控制

只说与Java不一样的地方

forEach循环

var age = [12,2,13,3,12,3,12,31,23,123];

//里面是一个函数
age.forEach(function(){
    console.log(value);
})

for...in

遍历下标

//for(var index in objext){}
for(var num in age){
        console.log(age[num]);
}

for...of

遍历元素

1.循环字符串

let string = "abc";
for(let i of string){
    console(i);//a,b,c
}

 2.循环数组

JavaScript 数组的 keys() 方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键。 

 

values()方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值。 

与直接arr一样,都是输出数组元素的值

for(let i of arr){
    console.log(i);//一样
}

 

 从数组 arr中创建一个可迭代对象, 该对象包含了数组的键值对:

键是数组下标,值就是数组中元素的值。

3、循环普通对象

 

 

4、循环Map接口

 

5、循环set结构 

 

1、除了字符串,map,set 结构可以直接利用循环出来!

2、对于数组或者对象都需要进行entries() 来进行循环,注意的是对象的entries是静态方法,而对于数组来说是实例方法。

3、为什么循环的时候都是[keys ,values ] 呢?  我们可以用结构赋值来理解,因为map 结构,它本身定义的时候就是 new Map ([[keys,values],[keys,values]])  ,它本身就是[keys ,values ] 的结构,当然可以这样直接循环出来喽!

 3.5 Map和Set

Map:

var map = new Map([['tom',100],['jack',90],['haha',80]]);
var name = map.get('tom');
console.log(name);//100

 Set:无序不重复的集合

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

 

 

 

 

 

 

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值