js数组与字符串
2016-07-23 22:20
357 查看
(以cocos2d-js为例,且以下显示结果,均以刷新网站后的为准)
Ps:一般index是包括开始位置,不包括结束位置
当new Array()参数为一个数值型,会当成size处理
显示说明:(在Chrome中运行,且开发者工具里显示)
输出数字的显示格式:[index:item,index:item…]
(1)首元素非undefined时,不会显示“0:”
(2)undefined的元素,不会显示
添加/替换元素:
Item数大于delCount时:平移
Item小于delCount时:彻底删除,而非undefined
push,unshift平移,返回新数组的长度;
splice结合,返回被替换的数组
JS可用 一个未声明过的变量,同样,
也可用一个未定义的数组元素(指索引超过或等于length的元素)
删除元素
shift移动
数组合并、截取(不改变当前数组)
slice切开
数组排序(改变当前数组)
array.reverse();//数组反转
array.sort();//数组排序(大—>小),返回数组地址
不改变数组
array.join(separator);//将数组元素用分割器separator连接起来
获取
查找
返回第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1
match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
substr 或 未全局匹配正则表达式:
全局匹配正则表达式:
截取
(1)根据序号
(2)根据长度
替换
转换
(1)数组
(2)大小写
连接
length
prototype
1.说明:返回对象类型原型的引用
2.作用:给对象添加属性或方法,
3.使用范围:添加的方法或属性在所有的实例上共享,因此也常用来扩展js内置对象
4.举例:
constructor
1.说明:创建对象的函数。
2.范围:它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象
3.作用:constructor 属性保存了对构造 特定对象实例 的 函数的引用
4.举例:
二.说明:
(1)toLocalString,toString:将对象转换成字符串
(2)valueOf:将对象的描述转换成字符串
三.举例:
第一次打开网站时
刷新后
三.针对数组的区别:
四.toLocalString与toString的具体区别
(1)方法命名:
toString()方法获取的是String(传统字符串)
toLocaleString()方法获取的是LocaleString(本地环境字符串)
(2)各自适用情况:
A.当前脚本在世界范围,则将对象转换成字符串,要用toString()
B.返回时间类型的数据时,LocaleString().
C.在后台处理字符串时,toString().
(∵LocaleString()会根据机器的本地环境来返回字符串,
和toString()返回值在不同的本地环境下,用的符号会有微妙的变化.
∴toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化.)
Ps:一般index是包括开始位置,不包括结束位置
数组的方法
创建数组:var array = new Array(); var array = new Array(size);//指定数组的长度 var array = new Array(item1,item2……itemN);//创建数组并赋值 var array = [item1,item2……itemN];//字面量
当new Array()参数为一个数值型,会当成size处理
var arr=new Array(6); arr[0]=0; arr[2]=2; arr[3]=3; arr[5]=5; cc.log(arr); cc.log(arr[1]);
显示说明:(在Chrome中运行,且开发者工具里显示)
输出数字的显示格式:[index:item,index:item…]
(1)首元素非undefined时,不会显示“0:”
(2)undefined的元素,不会显示
添加/替换元素:
array.push(item1,item2……itemN);//新元素加到数组尾部 array.unshift(item1,item2……itemN);//新元素加到数组首部,其他元素向后平移 array.splice(start,delCount,item1,item2……itemN); //从start开始(包括start),连续删除delCount个元素,再将item添加到这些位置
Item数大于delCount时:平移
var arr=new Array(0,1,2,3,4,5); cc.log(arr.splice(4,1,"str1","str2")); cc.log(arr); cc.log(arr.length);
Item小于delCount时:彻底删除,而非undefined
var arr=new Array(0,1,2,3,4,5); cc.log(arr.splice(1,3,"str1","str2")); cc.log(arr); cc.log(arr.length);
push,unshift平移,返回新数组的长度;
splice结合,返回被替换的数组
JS可用 一个未声明过的变量,同样,
也可用一个未定义的数组元素(指索引超过或等于length的元素)
删除元素
array.pop();//删除尾元素,并返回 array.shift();//删除首元素,并返回 array.splice(start,delCount);//从start的位置开始向后删delCount个元素
shift移动
数组合并、截取(不改变当前数组)
array.slice(start,end);//返回数组,不包括end array.concat(array1,array2....);//将多个数组拼接成一个数组
slice切开
数组排序(改变当前数组)
array.reverse();//数组反转
array.sort();//数组排序(大—>小),返回数组地址
不改变数组
array.join(separator);//将数组元素用分割器separator连接起来
字符串的方法
(以下方法均不改变字符串原型)获取
str.CharAt(index) ; str.CharCodeAt(index); String.fromCharCode(numX,numX,…,numX);//可接受一个或多个Unicode值,然后返回一个字符串 /*前两个方法接收多个参数时,也只以第一个参数为准,返回一个字符*/ var str="sasd"; cc.log(str.charAt(1,2)); cc.log(str.charCodeAt(1,2));
查找
indexOf(searchvalue,fromindex);//获取从fromindex开始,返回第一个searchvalue字符串的第一个字符的序号 lastIndexOf(searchvalue,fromindex);//与indexOf的区别,是返回最后一个 stringObject.search(substr) ;//指定子字符串 stringObject.search(regexp)//与正则表达式相匹配的子字符串
返回第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1
stringObject.match(substr) ; stringObject.match(regexp);
match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
substr 或 未全局匹配正则表达式:
var str = '1a2b3c4d5e'; cc.log(str.match('h')); //返回null cc.log(str.match('b')); //返回["b", index: 3, input: "1a2b3c4d5e"] cc.log(str.match(/b/)); //返回["b", index: 3, input: "1a2b3c4d5e"]
全局匹配正则表达式:
var str = '1a2b3c4d5e'; cc.log(str.match(/h/g)); //返回null cc.log(str.match(/\d/g)); //返回["1", "2", "3", "4", "5"]
截取
(1)根据序号
subString(int start);//截取从小标为start位置开始到结尾的字符串 subString(int start,int end);//截取从小标为start位置开始到小标为end-1的字符串 var str="sasd"; cc.log(str.substring(-1)); //返回sasd,传入负值时会视为0 slice(start,end);//参数为负,则该从尾部开始算起的位置;例如,-2 指字符串的倒数第二个字符
(2)根据长度
substr(start,length);//抽取从start下标开始的指定数目的字符串,start为负数,则从尾部算起。
替换
replace(regexp/substr,replacement);//返回替换的结果字符串 var str = 'abcdeabcdeABCDE'; cc.log(str.replace(/a/g, 'A')); //返回AbcdeAbcdeABCDE cc.log(str.replace(/a/gi, '$')); //返回$bcde$bcde$BCDE
转换
(1)数组
split(separator,howmany);//返回分割的字符串数组 /*字符串*/ var str = 'a|b|c|d|e'; cc.log(str.split('')); //返回["a", "|", "b", "|", "c", "|", "d", "|", "e"] /*正则表达式*/ var str = 'a1b2c3d4e'; cc.log(str.split(/\d/)); //返回["a", "b", "c", "d", "e"]
(2)大小写
toLowerCase(); toUpperCase();
连接
concat.(str1,str2...)//返回连接的字符串
数组和字符串的三个属性
(其中prototype,constructor是所有对象共有的属性)length
prototype
1.说明:返回对象类型原型的引用
2.作用:给对象添加属性或方法,
3.使用范围:添加的方法或属性在所有的实例上共享,因此也常用来扩展js内置对象
4.举例:
name:null; var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { this._super(); var arr=new Array(0,1,2,3,4,5); cc.log(arr.prototype); Array.prototype.max=arry_max;//给js内置对象Array添加方法max Array.prototype.name=name;//给js内置对象Array添加属性name arr.name="numbers"; cc.log(arr.max()); cc.log(arr.name); } }); arry_max=function(){ var max=this[0]; for(i in this){ if(this[i]>max){ max=this[i]; } } return max; }
constructor
1.说明:创建对象的函数。
2.范围:它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象
3.作用:constructor 属性保存了对构造 特定对象实例 的 函数的引用
4.举例:
var HelloWorldScene = cc.Scene.extend({ onEnter:function () { this._super(); var layer = new HelloWorldLayer(); if(layer.constructor==HelloWorldLayer){ cc.log("layer对象的构造函数是HelloWorldLayer") } this.addChild(layer); } });
Js中的toLocalString,toString,valueOf
一.适用:js中所有对象都有这三种方法二.说明:
(1)toLocalString,toString:将对象转换成字符串
(2)valueOf:将对象的描述转换成字符串
三.举例:
var arr=new Array(0,1,2,3,4,5); cc.log(arr.toString()); cc.log(arr.toLocaleString()); cc.log(arr.valueOf());
第一次打开网站时
刷新后
三.针对数组的区别:
cc.log(arr.toString());//每个元素.toString(),然后结合 cc.log(arr.toLocaleString());//每个元素.toLocalString(),然后结合
四.toLocalString与toString的具体区别
(1)方法命名:
toString()方法获取的是String(传统字符串)
toLocaleString()方法获取的是LocaleString(本地环境字符串)
(2)各自适用情况:
A.当前脚本在世界范围,则将对象转换成字符串,要用toString()
B.返回时间类型的数据时,LocaleString().
C.在后台处理字符串时,toString().
(∵LocaleString()会根据机器的本地环境来返回字符串,
和toString()返回值在不同的本地环境下,用的符号会有微妙的变化.
∴toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化.)
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解