一、用法不同
字符串的添加用concat()。
var a=[0,1,2,3,4,5];
1、 a.push(11); a[1] = 22;
两种都可以,第一种是加在数组的最后结果var a=[0,1,2,3,4,5,11];第二种是加在数组的指定位置结果var a=[0,22,1,2,3,4,5]。
二、作用不同
.push() 方法可向数组的末尾添加一个或多个元素,该方法直接修改原对象,返回值是数组的新的长度。
向数组末尾添加多个元素的例子:
var arr=['1','2','3'];arr.push('4','7') //5
.concat()既可以被数组使用,也可以被字符串使用。该方法无法直接修改原对象,返回值是拼接完的对象。
当被字符串使用时,该方法用于连接两个或多个字符串:string.concat(string1, string2, ..., stringX)
JS一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名。
JS是一个序列化的对象或数组。
1、六个构造字符:
begin-array = ws %x5B ws [ 左方括号
begin-object = ws %x7B ws { 左大括号
end-array = ws %x5D ws ] 右方括号
end-object = ws %x7D ws } 右大括号
name-separator = ws %x3A ws : 冒号
value-separator = ws %x2C ws , 逗号
扩展资料
JavaScript一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}:
console.log("a")//这是正确的
console.log("b")//这是正确的
console.logg("c")//这是错误的,并且到这里会停下来
console.log("d")//这是正确的
console.log("e")//这是正确的
try{console.log("a")}catch(e){}//这是正确的
try{console.log("b")}catch(e){}//这是正确的
try{console.logg("c")}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d")}catch(e){}//这是正确的
try{console.log("e")}catch(e){}//这是正确的
因为a[0]是个对象,所以为引用类型;引用类型栈内存中存放的是指向堆内存中的指针,也就是说push后b中存放的是能访问a[0]堆内存的指针,则b[0]的指针所指向的值与a[0]指针指向的值是同一个,内存也是同一个;此时,你再对b[0]中的c属性进行操作,则改内存中的值改变,则a[0]的值同样改变,这里就是引用类型的基本存储问题。要解决的话可采用深拷贝的方法,将a[0]的指针与b[0]的指针分别指向不同的内存即可解决
可将第三行修改为b.push(JSON.parse(JSON.stringify(a[0])))
push 方法改变的是数组本身,返回值是push之后数组的长度。
所以,代码应该这样写:
var queue = []queue.push( 'A', 'B' )
console.log( queue ) // output [ 'A', 'B' ]