javaScript 知识点
字符串
-
length
求字符串长度var s = "hello world"; s.length; //13
-
toUpperCase
把一个字符串全部变成大写var s = 'Hello'; s.toUpperCase(); // 返回'HELLO'
-
toLowerCase
把一个字符串全部变成小写var s = 'Hello'; var lower = s.toLowerCase(); // 返回'hello'并赋值给变量lower lower; // 'hello'
-
indexOf
搜索指定字符串出现的位置var s = 'hello, world'; s.indexOf('world'); // 返回7 s.indexOf('World'); // 没有找到指定的子串,返回-1
-
substring
返回指定索引区间的子串(也可用slice
)var s = 'hello, world' s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello' s.substring(7); // 从索引7开始到结束,返回'world'
数组
-
indexOf
搜索一个指定元素的位置var arr = [10, 20, '30', 'xyz']; arr.indexOf(10); // 元素10的索引为0 arr.indexOf(20); // 元素20的索引为1 arr.indexOf(30); // 元素30没有找到,返回-1 arr.indexOf('30'); // 元素'30'的索引为2
-
slice
截取数组部分元素,并返回一个新的数组var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C'] arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
-
push
和pop
push()
向数组的末尾添加元素,pop()
则把数组的末尾元素删除掉var arr = [1, 2]; arr.push('A', 'B'); // 返回arr新的长度: 4 arr; // [1, 2, 'A', 'B'] arr.pop(); // pop()返回'B' arr; // [1, 2, 'A'] arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次 arr; // [] arr.pop(); // 空数组继续pop不会报错,而是返回undefined arr; // []
-
unshift
和shift
unshift()
向数组的开头添加元素,shift()
则把数组的开头元素删除掉var arr = [1, 2]; arr.unshift('A', 'B'); // 返回arr新的长度: 4 arr; // ['A', 'B', 1, 2] arr.shift(); // 'A' arr; // ['B', 1, 2] arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次 arr; // [] arr.shift(); // 空数组继续shift不会报错,而是返回undefined arr; // []
-
sort
将数组按照从小到大排序-
普通排序
var arr = ['B', 'C', 'A']; arr.sort(); arr; // ['A', 'B', 'C']
-
数字字符串排序
var arr = ['1', '5', '2', '10', '12', '20'] arr.sort(); //["1", "10", "12", "2", "20", "5"] function sortNumber(a,b) { return a - b } arr.sort(sortNumber); //["1", "2", "5", "10", "12", "20"]
-
复杂排序
// 数组按照字典中某键值排序, 两个数相减是按照数据 ASCII 值排序,直接比较大小按照数据本身类型比较的 function createCompareFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; //方法1 //return value1 - value2 //方法2 if(value1<value2){ return -1; } else if(value1>value2){ return 1; }else{ return 0; } } } var arr = [ {name:'zopp',age:0, grade:"10"}, {name:'gpp',age:18, grade:"5"}, {name:'yjj',age:8, grade:"1"} ]; arr.sort(createCompareFunction("grade")); /*方法2结果 [ {name:'yjj',age:8, grade:"1"}, {name:'zopp',age:0, grade:"10"}, {name:'gpp',age:18, grade:"5"} ] */ /*方法1结果 [ {name:'yjj',age:8, grade:"1"}, {name:'gpp',age:18, grade:"5"}, {name:'zopp',age:0, grade:"10"} ] */
-
-
reverse
将数组反转,即倒序var arr = ['one', 'two', 'three']; arr.reverse(); arr; // ['three', 'two', 'one']
-
splice
从数组指定索引位置添加或者删除元素splice(param1, param2, param3, param4, ...)
param1
指定索引的位置;
param2
要删除元素的个数;
param3
、param4
等是添加元素的值。var arr = ['a', 'b', 'c', 'd', 'e', 'f']; // 从索引2开始删除3个元素,然后再添加两个元素: arr.splice(2, 3, 'g', 'h'); // 返回删除的元素 ['c', 'd', 'e'] arr; // ['a', 'b', 'f', 'g', 'h'] // 只删除,不添加: arr.splice(2, 2); // ['f', 'g'] arr; // ['a', 'b', 'h'] // 只添加,不删除: arr.splice(2, 0, 'i', 'j'); // 返回[],因为没有删除任何元素 arr; // ['a', 'b', 'i', 'j', 'h']
-
concat
将当前数组与另一个数组拼接起来,并返回一个新数组// 情况1 var arr = ['A', 'B', 'C']; var arr1 = arr.concat([1, 2, 3]); console.log(arr1); // ['A', 'B', 'C', 1, 2, 3] arr; // ['A', 'B', 'C'] // 情况2 var arr = ['A', 'B', 'C']; arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]
-
join
将数组元素按照指定字符串连接起来var arr = ['A', 'B', 'C', 1, 2, 3]; arr.join('-'); // 'A-B-C-1-2-3'
iframe
父子窗口相互访问
//document 获取节点元素的方法
document.getElementById("元素的 id 值") //单个对象,没找到为null
document.getElementsByClassName("元素的 class值") //数组,没找到为空数组
document.getElementsByTagName("元素的标签名") //数组,没找到为空数组
document.getElementsByName("元素的 name 值") //数组,没找到为空数组
document.documentElement //获取 HTML
document.body //获取 body
//1. 父窗口获取 `iframe` 中的元素(js)
window.frames["iframe的name值"].document //iframe 中的 window
//2. `iframe` 获取父窗口 中的元素(js)
window.parent.document
//3. 父窗口获取 `iframe` 中的元素(jq)
$("#iframe的ID").contents().find("#iframe中的控件ID").click()
//4. `iframe` 获取父窗口 中的元素(jq)
$('#父窗口中的元素ID', parent.document).click();
//5. 父窗口获取 `iframe`中的方法
<iframe_name>.window.functionName()
//6. `iframe`获取父窗口 中的方法
parent.functionName();