二维数组
数组中的每一个元素也是数组
?var arr=[ [1,2,3], [4,5,6], [7,8,9], [1,2,3,4,5,6,7] ...];
怎么遍历二维数组
var arr=[ [1,2,3], [4,5,6,7], [10,20,30,40,60,80] ]; for(var r=0;r<arr.length;r++){ for(var c=0;c<arr[r].length;c++){ console.log(arr[r][c]); } }
怎么访问二维数组中的元素
arr[r][c]思考问题 var arr=[ [1,2,3], [5,6], [7] ]; arr[0][5] //undefined arr[5][1] //报错二维数组:列下标 可以超出 行下标不可以?var obj={ name:"小明"}var a="name";obj[a]??
访问一个对象的属性;如何这个属性的值是一个变量 obj[变量名] 赋值也是一样 obj[变量名]=值
hash数组(关联数组)
普通数组下标:0123456789概念:自定义下标的数组声明: var hashArr = []; hashArr[‘a‘]=‘tom‘; hashArr[‘b‘]=‘jerry‘; hashArr[‘c‘]=‘tony‘;使用: hashArr[‘a‘]对象其实就是关联数组?对象的严格写法:属性名必须加 "" 双引号,对象的属性名方法名其实是字符串注意: 关联数组的length属性是无效的
json
js对象表示法 json 不是js语法,语言通用(模仿js对象的写法 储存数据格式)数据格式 用于传输数据的(前后台)json是js对象的严格语法: 键和值得一一对应关系 属性名(键)是需要加 ""var json={ "name":"小明", "age":18, "gender":"男"}
数组分类
number 数组 数组存的就是数字string数组 存储是字符串混合数组:存储多个数据类型的值json数组 后台传前台的数据就是json数组[ { "itemName":"小米9", "itemPrice":2339, ... }, { "itemName":"小米9", "itemPrice":2339, ... }, { "itemName":"小米9", "itemPrice":2339, ... } ]
for in循环 增强for循环
for(var key in arr){ key就是下标 arr[key]}
严格模式
- "use strict"
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 全局变量声明时 必须加var
"use strict"; x = 3.14;
- this 无法指向全局对象
this函数内部关键字默认指向全局对象window?window对象下的属性和方法就是全局的function f(){ "use strict"; return !this;} // 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。
- 不允许变量重名:
"use strict";function x(p1, p1) {}; // 报错
window
js内置的对象
是最大一个对象,全局的对象,window下面的属性和方法就是全局的属性和方法,可以直接使用可以在任意位置使用
window下的属性和方法,在使用时,可以省略window
var a=10; 给window增加一个a属性
this关键字
这个,指向 所在的代码中环境的指向
在全局环境下:指向window
在函数中:
01,事件函数
this指向事件源
02,普通函数
this指向window
在严格是下
es5新增数组相关api
indexOf(data[,starti]) 查找关键字
第一个参数:需要查找的关键字
第二个参数:从哪里开始查找,默认是开始位置查找
顺序从前往后
不能全局查找,遇到第一个复合条件的元素就立即返回
?var arr=[1,2,3,4,5,7,8,98,9,0,0,‘tmd‘,0,7];
lastIndexOf(data)
找到了返回结果所在的下标,找不到返回-1
顺序:从后往前找
不能全局查找,遇到第一个复合条件的元素就立即返回
forEach()循环
arr.forEach(function(item,index,arr){ //item每一次遍历的数组的元素 //index是下标 arr是数组本身});
forEach能否取代普通for循环
遍历过程中,因为某些条件要终止循环var arr=[1,2,0,4,8,32,5,35,6];for(var i=0;i<arr.length;i++){ if(arr[i]==0){ break; }}
map() 遍历当前数组,返回新数组
var arr=[1,2,3,4,5]; //[2,4,6,8,10] var newArr = arr.map(function(item,index){ return item+2; }); console.log(newArr);
filter 过滤 得到符合条件新数组
var newArr = arr.filter(function(item,index){ return 条件;});
every() 条件判断,判断数组中的“每”!!!一个元素是不是都满足某个条件,如果都满足返回true,否则返回false
var bool =arr.every(function(item,index){ return 条件});
some()条件判断,判断数组中的“某”!!!一个元素是不是都满足某个条件,如果都满足返回true,否则返回false
var bool =arr.every(function(item,index){ return 条件});
字符串
字符串的两种创建方式(常量和构造函数)
(字符串不是对象,按常理不会有属性和方法,但是字符串是引用js 的封装的,其他,所以就可以用)
- var str="亲"
- var str = new String(“hello”) (不太常用)
- ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的系统,并等同于国际标准ISO/IEC 646
- Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
- utf-8 可变大小字符集
字符串的比较 比较unicode编码大小 (首字符)
字符串常用api
怎么理解:只读的数组 数组中所有的api只要是只读,字符串都可以使用
length 返回字符串长度也可以通过下标获取某个字符 str[下标]concat() 一般字符串不会用 +就是连接slice()
charAt(下标) 获取对应下标字符 str[下标]
charCodeAt(下标) 获取字符串的unicode编码
String.fromCharCode() 可以接受一个unicode编码 返回这个字符串
大小写转换:
转大写:
str.toUpperCase()
转小写
str.toLowerCase()
indexOf("字符"[,位置]) 用法跟数组indexOf一样
lastIndexOf() 用法同数组lastIndexOf()
截取子字符串
substring(starti[,endi+1])
substr(starti[,n])
n:截取几个
字符串切割为数组
var arr = str.split(seperator);
分隔符:以什么进行分割
注意:
- 如果参数不传,默认是将整个字符放到数组中,数组只要一个元素,字符串
- 参数是 ""空字符串 将字符串的每一个字符都切割作为数字的一个元素
?var str = "hello world";?
原文地址:https://www.cnblogs.com/cxf1214/p/11391817.html