字符串
字符串就是零个或多个排在一起的字符,放在单引号或双引号之中
单引号字符串的内部,可以使用双引号。双引号字符串的内部,可以使用单引号
‘key = “value”’
“It’s a long itbaizhan”
如果要在单引号字符串的内部,使用单引号,就必须在内部的单引号前面加上反斜杠,用来转义。双引号字符串内部使用双引号,也是如此.
‘Did she say ‘Hello’?’// “Did she say ‘Hello’?”
“Did she say “Hello”?”// “Did she say “Hello”?”
温馨提示
字符串默认只能写在一行内,分成多行将会报错
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠
var longString=‘Long <br />long <br />string’;
longString
// “Long long long string”
length 属性
length属性返回字符串的长度,该属性也是无法改变的
var s=‘itbaizhan’;s.length// 9
字符串方法_charAt()
charAt方法返回指定位置的字符,参数是从0开始编号的
vars=newString(‘itbaizhan’);
s.charAt(1) // “t”
s.charAt(s.length-1) // “n”
如果参数为负数,或大于等于字符串的长度,
charAt返回空字符串
‘itbaizhan’.charAt(-1) // “”‘itbaizhan’.charAt(9) // “”
字符串方法_concat()
如果参数不是字符串,
concat方法会将其先转为字符串,然后再连接
var one=1;
var two=2;
var three=‘3’;
字符串方法_substring()
substring方法用于从原字符串取出子字符串并返回,不改变原字符串。它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置)
‘itbaizhan’.substring(0, 2) // “it”
如果省略第二个参数,则表示子字符串一直到原字符串的结束
substring方法会自动更换两个参数
如果第一个参数大于第二个参数,的位置
‘itbaizhan’.substring(9, 2) // “baizhan”// 等同于
‘itbaizhan’.substring(2, 9) // “baizhan”
如果参数是负数,
substring方法会自动将负数转为0
‘itbaizhan’.substring(-3) // “itbaizhan”‘itbaizhan’.substring(2, -3) // “it”
字符串方法_substr()
substr方法用于从原字符串取出子字符串并返回,不改变原字符串,跟substring方法的作用相同.
substr方法的第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度.
‘itbaizhan’.substr(2, 7); // baizhan
如果省略第二个参数,则表示子字符串一直到原字符串的结束.
‘itbaizhan’.substr(2) // “baizhan”
如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串
‘itbaizhan’.substr(-7) // “baizhan”‘itbaizhan’.substr(4, -1) // “”
字符串方法_indexOf()
indexOf方法用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配
‘hello world’.indexOf(‘o’) // 4’itbaizhan’.indexOf(‘sxt’) // -1
indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配
‘hello world’.indexOf(‘o’, 6) // 7
字符串方法_trim()
trim方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串.
’ hello world ‘.trim()// “hello world”
该方法去除的不仅是空格,还包括制表符(\t、(\n)和回车符(\r)
\v)、换行符
’\r\nitbaizhan \t’.trim() // ‘itbaizhan’ES6扩展方法,trimEnd()和trimStart()方法
" itbaizhan “.trimEnd(); // itbaizhan
” itbaizhan ".trimStart(); // itbaizhan
字符串方法_split()
split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组
‘it|sxt|baizhan’.split(’|‘) // [“it”, “sxt”, “baizhan”]
如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。
‘a|b|c’.split(’') // [“a”, “|”, “b”,“|”, “c”]
如果省略参数,则返回数组的唯一成员就是原字符串
‘it|sxt|bz’.split() // [it|sxt|bz]
split方法还可以接受第二个参数,限定返回数组的最大成员数。
数组
数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。
vararr= [‘sxt’, ‘baizhan’, ‘it’];
除了在定义时赋值,数组也可以先定义后赋值。
vararr= [];
arr[0] =‘sxt’;
arr[1] =‘baizhan’;arr[2] =‘it’;
任何类型的数据,都可以放入数组
vararr= [ 100, [1, 2, 3],false ];
length 属性
数组的length属性,返回数组的成员数量
[‘sxt’, ‘baizhan’, ‘it’].length// 3
数组的遍历
数组的遍历可以考虑使用for循环或while循环
var a = ['sxt', 'baizhan', 'it'];
// for循环
for(var i = 0; i < a.length; i++) { console.log(a[i]);
}
// while循环
var i = 0;
while (i < a.length) { console.log(a[i]);
i++;
}
for…in遍历数组
var a= ['sxt', 'baizhan', 'it'];
for (variina) {
console.log(a[i]);}
数组静态方法_Array.isArray()
数组静态方法_Array.isArray()
Array.isArray方法返回一个布尔值,表示参数是否为数组。它可以弥补typeof运算符的不足
var arr= [“尚学堂”, 100, true];
console.log(typeofarr); // object
var arr= [‘sxt’, ‘baizhan’, ‘it’];Array.isArray(arr) // true
数组方法_push()/pop()
push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组
var arr= [];
arr.push(“尚学堂”) // 1
arr.push(‘itbaizhan’) // 2
arr.push(true, {}) // 4
arr// [尚学堂, ‘itbaizhan’, true, {}]
pop方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组
var arr= [‘尚学堂’, ‘itbaizhan’, ‘WEB前端’];
arr.pop() // ‘WEB前端’
arr// [‘尚学堂’, ‘itbaizhan’]
数组方法_shift()/unshift()
shift方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组
vararr= [‘尚学堂’, ‘itbaizhan’, ‘WEB前端’];
arr.shift() // ‘尚学堂’
arr// [‘itbaizhan’, ‘WEB前端’]
shift方法可以遍历并清空一个数组
var list= [1, 2, 3, 4, 5, 6];varitem;
while (item=list.shift()) { console.log(item);
}
list// []
unshift方法用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组
vararr= [‘尚学堂’, ‘itbaizhan’, ‘WEB前端’];
arr.unshift(‘baizhan’); // 4
arr// [‘baizhan’, ‘尚学堂’, ‘itbaizhan’, ‘WEB前端’]
unshift方法可以接受多个参数,这些参数都会添加到目标数组头部
vararr= [ ‘尚学堂’, ‘itbaizhan’ ];
arr.unshift(‘WEB前端’, ‘baizhan’) // 4
arr// [ ‘WEB前端’, ‘baizhan’, ‘尚学堂’, ‘itbaizhan’ ]
数组方法_join()
join方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔
vara= [1, 2, 3, 4];
a.join(’ ‘) // ‘1 2 3 4’
a.join(’ | ‘) // "1 | 2 | 3 | 4"a.join() // “1,2,3,4”
如果数组成员是undefined或null或空位,会被转成空字符串
[undefined, null].join(’#‘)// ‘#’
[‘a’, ‘b’].join(’-‘)// ‘a–b’
数组的join配合字符串的split可以实现数组与字符串的互换
vararr= [“a”,“b”,“c”];
varmyArr=arr.join(“”);
console.log(myArr);
console.log(myArr.split(“”));
数组方法_concat()
concat方法用于多个数组的合并。它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变.
[‘hello’].concat([‘world’])// [“hello”, “world”]
[‘hello’].concat([‘world’], [’!'])// [“hello”, “world”, “!”]
除了数组作为参数,标数组尾部。
concat也接受其他类型的值作为参数,添加到目标数组尾部。
[1, 2, 3].concat(4, 5, 6)// [1, 2, 3, 4, 5, 6]
应用场景
上拉加载,合并数据
数组方法_reverse()
reverse方法用于颠倒排列数组元素,返回改变后的数组。注意,该方法将改变原数组.
var a = ['a', 'b', 'c'];
a.reverse() // ["c", "b", "a"]a // ["c", "b", "a"]
实现一个字符串反转排列
varstr=“hello”;
str.split(“”).reverse().join(“”)
数组方法_indexOf()
indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1
vararr= [‘a’, ‘b’, ‘c’];
arr.indexOf(‘b’) // 1arr.indexOf(‘y’) // -1
indexOf方法还可以接受第二个参数,表示搜索的开始位置
[‘尚学堂’, ‘百战程序员’,
‘itbaizhan’].indexOf(‘尚学堂’, 1) // -1
函数
函数是一段可以反复调用的代码块
函数的声明
function 命令: function命令声明的代码区块,就是一个函数。
function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。
functionprint(s) { console.log(s);
}
函数名的提升
JavaScript 引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部
add();
functionadd() {}
函数参数
函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参数
functionsquare(x) {
console.log(x*x);}
square(2) // 4square(3) // 9
函数返回值
JavaScript函数提供两个接口实现与外界的交互,其中参数作为入口,接收外界信息;返回值作为出口,把运算结果反馈给外界
functiongetName(name){ returnname;
}
varmyName=getName(“itbaizhan”)console.log(myName); // itbaizhan