Js———引用类型
来源:互联网 发布:xcode c语言编程教程 编辑:程序博客网 时间:2024/06/17 20:06
引用类型是一种数据结构,将数据和功能组织在一起。
Object类型:
创建object实例的两种方法:
1. new 后面跟object构造函数(只为新对象定义了默认的属性和方法):
var person=new Object();
person.name=”Nicholes”;
2. 字面量表示法:(冒号、逗号)
var person={
name : ” Nicholes”,
age : 29
}
var person={};//和new Object() 相同;
person.name=”Nicholes”;
3. 访问对象属性时使用的方法:
例: person.name
person[“name”] :方括号可以通过变量来访问属性;
4. 添加、改变、删除 对象的属性和方法:
person.name=””;
delete person.name;
销毁对象:对象=null;
Array类型:
1. 数组是无序列表;
2. 创建数组的方法:
(1). 使用Array构造函数 :var colors=new Array();
var colors=new Array(20);
var colors=new Array(“red”,”blue”);
(2). 使用数组字面量表示法:
var colors=[“red”,”blue”];
var colors=[];//创建一个空数组;
3. 读取和设置数组的值:
使用索引下标:colors[ ];
4. 数组长度:
colors.length; //获取
colors.length=5; //设置
5. 向数组末尾添加新项:
colors[colors.length]=”green”;
colors.push(“ green”,”black ”);
一. 检测数组:
1. instanceof操作符:
例:[1,2] instanceof Array ===true;
if (value instanceof Array){
}
2. Array.isArray(value);
if(Array.isArray(value)){
toLocalString(); toString(); valueOf(); join(“||”):可以设置分隔符;
如果数组中的某一项是null或undefined,则改值返回空字符串;
三. 栈方法:
栈:一种可以限制插入和删除项的数据结构,后入先出,栈中项的推入和弹出只发生在栈的顶部;
push(): 接收参数,逐个添加到数组末尾,返回数组长度length;
例:push(“red”);
pop(): 从数组末尾移除最后一项,返回数组长度length;
四. 队列方法:
是一种先进先出的数据结构;
shift(): 移除数组的第一项并返回该项,长度length减1;
unshift(): 在数组前端添加任意个项并返回新数组长度;
例:unshift(“red”);
五.重排序方法:
reverse():反转数组的排列顺序;
sort(): 无参数,按字符编码顺序排列数组项;
有参数,使用比较函数:obj.sort(compare);
//升序函数
function compare(value1,value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}
//降序函数
function compare1(value1,value2){
if(value1 < value2){
return 1;
}else if(value1 > value2){
return -1;
}else{
return 0;
}
}
对于数值类型或者其valueOf() 方法会返回数值类型的对象类型:
function compare(a,b){
return a-b;
}
六.操作方法:
concat(): 连接数组,创建一个新数组;
slice(): 从已有数组返回一个选定数组,两个参数(可负数),起始位置和结束位置;(结束位置小于起始位置会返回空数组)
splice():(没有删除任何项,会返回空数组)
删除:splice(0,2); 删除数组前两项;参数:起始位置,项数;
插入:splice(2,0,”red”); 参数:起始位置,要删除的项,要插入的项;
替换:splice(2,1,”red”); 参数:起始位置,要删除的项,要插入的项;
七、位置方法:
indexOf():从数组开头开始向后查找;
lastIndexOf(): 从数组末尾开始向前查找;
注意:
都接收两个参数:要查找的项、起点位置的索引(可选);
要求查找的项必须严格等于;
在没有找到的情况下返回-1;
八、迭代方法:
每个方法接收两个参数:运行函数,运行函数的作用域对象(可选);
函数会接收三个参数:数组项的值,该项在数组中的位置和数组对象
本身;function(item,index,array);
1查询符合某些条件的所有数组项:filter();
2对数组的每一项给定函数,每项都返回true,则为true。every();
3对数组的每一项给定函数,任一返回true,则为true 。some();
4对数组的每一项给定函数,返回每次函数调用的结果组成的数组:map();
5 forEach(); 没有返回值;
九、归并方法:
reduce(); 从数组的第一项开始 ,向后遍历;
reduceRight(); 从数组的的最后一项开始,向前遍历;
都接收两个参数:调用的函数,作为归并基础的初始值(可选);
调用的函数接收4个参数:前一个值、当前值、项的索引、数组对象;
函数的返回值会作为第一个参数自动传给下一项;
例:var value=[1,2,3,4,5];
var sum=value.reduce(function(prev,cur,index,array){
return prev + cur;
});
alert(sum);//15
Date类型:
1.创建日期对象的方法:
var now=new Date(); 可以传参;
Date.parse(): 接收一个表示日前的字符串参数,返回相应日期的毫秒数;
例:var someDate=new Date(Date.parse(“May 25,2004”));
等价与:var someDate=new Date(“May 25,2004”);
Date.UTC(): 同样返回毫秒数;
Date.UTC( 2005,4,5,17,55,55);
参数:年份、基于0的月份(1月为0)、月中的某一天、小时数、分钟、秒、毫秒;
2 . 继承的方法:
toLocaleString(); toString(); 返回日期;P101;
valueOf(); 返回日期的毫秒表示;可以比较大小;
3.日期时间的方法:P102;
4. 取得时间戳:Date.now() ; +new Date();//两种方法,首先考虑第一种
var start=+new Date();
Sum(1,2);
alert(1);
var stop=+new Date();
alert(stop-start);
RegExp类型:
创建正则表达式:
1. var pattern=/ [bc]at /flags; 字面量表示法
2. var pattern=new RegExp( “ 要匹配的字符串模式 ”, ”flags”);
所有元字符都要双重转义,转义过的字符也是如此
例如:字面量模式:/\[bc\]at/ 转义为 /\\[bc\\]at/ 前面加\;
RegExp实例属性:
globle: 布尔值,是否设置了g;
ignoerCase: i
multiline: m
lastIndex:搜索下一个匹配项的开始位置,从0 开始算;
source: 正则表达式的字符串表示,按照字面量的形式返回
RegExp实例方法:
exec(text) : 参数 :要应用模式的字符串,返回包含第一个匹配项信息的数组
没有匹配项,则返回null
额外属性:index :匹配项在字符串中的位置
input: 表示应用正则表达式的字符串
test(text): 返回布尔值 ,经常与if连用
toLocaleString()和toString() : 返回正则表达式的字面量
RegExp构造函数属性
使用这些属性可以从exec() 、test() 方法中提取更多的信息
两种访问方式:长、短属性名
input $_ : 最近一次要匹配的字符串
lastMatch $& : 最近一次的匹配项
lastParen $+ : 最近一次匹配的捕获组
(Opera不支持前三个);
leftContext $` : 匹配项之前的内容
rightContext $’ : 匹配项之后的内容
multiline $* : 布尔值IE、Opera 不支持
RegExp.$1 …… RegExp.$9 存储九个匹配的捕获组(编号的捕获组)
1. flags:
i: 忽略大小写;
g: 全部匹配;
m: 把\n识别为换行,多行模式;
2. 中括号
[abc]: 中括号中任意一个字符
[^abc]: 除了中括号中的任意一个字符
(linuw)|(php): 1. Linux 或php单词。2. 可实现向后引用$1,$2(replace替换)
(..) 3. 创造捕获组 4. $1…$9 存储捕获组
3. 元字符:
. : 任意一个字符,除了换行和行结束符;
\w : 任意一个字母、数字、下划线;
\W: 任意一个非 字母、数字、下划线;
\d : 任意一个数字
\D : 任意一个非数字
\s : 任意一个空格
\S : 任意一个非空格
\b : 单词边界
\B : 非单词边界
4. 量词:
+ 1个或多个
* 任意多个
? 1个或0个
{3} 3个
{3,5} 3个到5个
{3,} 3个以上
^ 行首 /^a/匹配"an A",而不匹配"An a"
$ 行末 /a$/匹配"An a",而不匹配"an A"
5. js中使用正则的字符串对象的方法
search();
match();
replace();
split();
6. 正则实例
电话号码:
phone.match(/^131\d{8}$/)
邮箱格式:
phone.match(/^\w+@\w+\.\w+$/i)
高级替换:
date="2016/05/11";
//2016-05-11
time= date.replace(/(\d+)\/(\d+)\/(\d+)/g,"$1-$2-$3");
alert(time);//2016-05-11
Function类型 :
1 函数是对象,函数名是指向函数对象的指针;
2定义函数的方法:
1. function sum(num1,num2){ } //函数声明
2. var sum=function(){} ;//注意分号,函数表达式
3. var sum=new Function(“ num1 ” , ”sum2” , ”return ”); //不推荐;
注意:1. 使用不带圆括号的函数名是访问函数指针,不调用函数;
2. 定义函数sum,赋值给anothersum ,将sum设为null,不影响anothersum进行sum操作。
3. 没有重载 ,同名函数 后面的会覆盖前面的
3 函数声明与函数表达式:
函数声明:解析器会率先读取函数声明,使其在任何代码之前可用,
函数表达式则不行;
4 作为值的函数:
1. 当作参数传给一个函数;
2. 当作另一个函数的结果返回;
5 函数内部属性
arguments :类数组对象,包含着传入函数的所有参数
callee:函数被调用时,arguments.callee 指向自身;
caller: 保存着调用当前函数的函数的引用,在全局作用域中调用则返回null;arguments.callee.caller
this : 引用函数执行的环境对象,当在全局作用域中调用函数this应用window;
6 函数属性和方法:
length :函数希望接收的命名参数的个数
prototype :保存所有实例方法的真正所在
两个非继承而来的方法,在特定的作用域中调用函数,实际上设置this
apply(): 两个参数 :运行函数的作用域 、array实例或arguments ;
call(): 多个参数 : this 、其余参数逐个列举,直接传给函数;
用途:扩充作用域
ES5方法:bind(); 创建一个函数实例,其this值会被绑定到穿个bind()函数的值,var objSayColor=sayColor.bind(obj);
继承的方法:
toString()和toLocaleString() ,始终返回函数的代码
基本包装类型:
Boolean,Number,String;
在访问基本类型值时,后台自动创建一个对应的实例,在实例上调用
方法,然后销毁这个实例;
例:不能为其添加属性和方法
var s1="chenzhijie";
s1.color="green";
alert(s1.color);//undefined
注意:所有基本包装类型的对象在转换为布尔类型时值都是true,
对基本包装类型的实例调用typeOf(),返回object;
因此不建议直接显示的创建基本包装类型的对象:
例:var obj=new Object(“some text”);
Boolean类型 :
valueOf(): 返回true/false;
toString(): 返回字符成”true”,”false”
Number类型:
toFixed(): 参数:小数位数;按照指定的小数位返回数值的字符串表示
例:var num=10.005;
alert(num.toFixed(2));//10.01
toExponential():参数:小数位数;返回以指数表示法表示的数值的字符串表示
var num=10;
alert(num.toExponential(1));//1.0e+1
toPrecision(): 参数:所有数字的位数(不包括指数), 按适合度,返回以上两种格式
var num=99;
alert(num.toPrecision(1));//1e+2
alert(num.toPrecision(2));//99
alert(num.toPrecision(3));//99.0
String类型:
1. Length属性
2. 继承方法valueOf(). toLocaleString(). toString().
都返回对象所表示的基本字符串值
3. 方法
charAt() 参数:字符位置,返回单个字符
stringValue(): 参数:字符位置,返回单个字符
charCodeAt() 参数:字符位置 ,返回字符编码
fromCharCode(): 参数 接收多个字符编码,返回字符串
( String构造函数本身的静态方法)
例:alert(String.fromCharCode(104,101,108,108,111));
4 . concat(): 参数:任意多个,拼接字符串
5. slice(),两个参数:开始位置和结束位置
substr(),两个参数:开始位置和结束位置
substring(): 两个参数:开始位置和返回的字符个数
对原始字符串无影响;
参数为负值时:slice() 参数与length相加
substr() 第一个参数与length相加,第二个为0;
substring() 所有负值参数都转化为0
6. indexOf()从开头 lastIndexOf() 从末尾 :搜索字符串,返回字符串位置,没找为-1;
参数:子字符串和开始位置。
7. trim() : 创建副本,删除前置及后缀的所有空格
8. 转换大小写:
toLowerCase()、 toLocaleCase()、 toUpperCase()、toLocaleUpperCase()
9. 模式匹配
search(); 参数:正则表达式 返回第一个匹配项的索引,没有则返回-1;
match(); 同exec() 。参数:正则表达式
replace();第一个参数:字符串或RegExp对象。第二个参数:字符串或函数
例子:
function rep(text){
return text.replace(/[<>"&]/g,function(match , pos , originalText){
switch(match){
case"<":
return "<";
case">":
return ">";
case "&":
return "&";
case "\"":
return """;
}
});
}
alert(rep("<p class=\" greeting\">hello\ world!</p>"));
split() ; 两个参数:指定分隔符(字符串、RegExp)和 指定数组大小
localeCompare(): 比较两个字符串
需要交换位置则返回1,相等为0 ,否则为-1
例: var stringValue='yellow';
alert(stringValue.localeCompare('brick'));//1
内置对象
Object Array String
单体内置对象:
Global和Math
Globle :(window对象来扮演)
1. 所有在全局作用域定义的属性和函数都是Globle对象的属性
所有原生引用类型的构造函数都是Globle对象 的属性
2. 对URI进行编码的方法,用UTF-8编码替换无效字符
encodeURI() :主要用于对整个URI
(不会对本身的特殊字符进行编码,例如:冒号,正斜杠,问号,冒号)
encodeURIComponent : 主要用于对URI中的某一段
(会替换所有非字母数字字符)
decodeURI() 、decodeURIComponent() 分别解码所对应的方法编码的字符
3. eval() 参数:要执行的字符串
A:可以引用在包含环境中定义的变量
var msg="hello";
eval('alert(msg)');
B:可以在eval() 调用中定义一个函数,然后在外部引用函数
eval("function sayHi(){alert('hi');}");
sayHi();
Math类型:
常用方法:
max()
min()
ceil() :向上取整
floor():向下取整
round(): 四舍五入取整
random():返回0-1之间的随机数
从整数范围内获取随机数的方法:
值=Math.floor(Math.random() * 可能值的个数 +第一个可能的值 );
var num=Math.floor(Math.random() * 10 + 1); //返回1-10 之间的随机数
Object类型:
创建object实例的两种方法:
1. new 后面跟object构造函数(只为新对象定义了默认的属性和方法):
var person=new Object();
person.name=”Nicholes”;
2. 字面量表示法:(冒号、逗号)
var person={
name : ” Nicholes”,
age : 29
}
var person={};//和new Object() 相同;
person.name=”Nicholes”;
3. 访问对象属性时使用的方法:
例: person.name
person[“name”] :方括号可以通过变量来访问属性;
4. 添加、改变、删除 对象的属性和方法:
person.name=””;
delete person.name;
销毁对象:对象=null;
Array类型:
1. 数组是无序列表;
2. 创建数组的方法:
(1). 使用Array构造函数 :var colors=new Array();
var colors=new Array(20);
var colors=new Array(“red”,”blue”);
(2). 使用数组字面量表示法:
var colors=[“red”,”blue”];
var colors=[];//创建一个空数组;
3. 读取和设置数组的值:
使用索引下标:colors[ ];
4. 数组长度:
colors.length; //获取
colors.length=5; //设置
5. 向数组末尾添加新项:
colors[colors.length]=”green”;
colors.push(“ green”,”black ”);
一. 检测数组:
1. instanceof操作符:
例:[1,2] instanceof Array ===true;
if (value instanceof Array){
}
2. Array.isArray(value);
if(Array.isArray(value)){
}
toLocalString(); toString(); valueOf(); join(“||”):可以设置分隔符;
如果数组中的某一项是null或undefined,则改值返回空字符串;
三. 栈方法:
栈:一种可以限制插入和删除项的数据结构,后入先出,栈中项的推入和弹出只发生在栈的顶部;
push(): 接收参数,逐个添加到数组末尾,返回数组长度length;
例:push(“red”);
pop(): 从数组末尾移除最后一项,返回数组长度length;
四. 队列方法:
是一种先进先出的数据结构;
shift(): 移除数组的第一项并返回该项,长度length减1;
unshift(): 在数组前端添加任意个项并返回新数组长度;
例:unshift(“red”);
五.重排序方法:
reverse():反转数组的排列顺序;
sort(): 无参数,按字符编码顺序排列数组项;
有参数,使用比较函数:obj.sort(compare);
//升序函数
function compare(value1,value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}
//降序函数
function compare1(value1,value2){
if(value1 < value2){
return 1;
}else if(value1 > value2){
return -1;
}else{
return 0;
}
}
对于数值类型或者其valueOf() 方法会返回数值类型的对象类型:
function compare(a,b){
return a-b;
}
六.操作方法:
concat(): 连接数组,创建一个新数组;
slice(): 从已有数组返回一个选定数组,两个参数(可负数),起始位置和结束位置;(结束位置小于起始位置会返回空数组)
splice():(没有删除任何项,会返回空数组)
删除:splice(0,2); 删除数组前两项;参数:起始位置,项数;
插入:splice(2,0,”red”); 参数:起始位置,要删除的项,要插入的项;
替换:splice(2,1,”red”); 参数:起始位置,要删除的项,要插入的项;
七、位置方法:
indexOf():从数组开头开始向后查找;
lastIndexOf(): 从数组末尾开始向前查找;
注意:
都接收两个参数:要查找的项、起点位置的索引(可选);
要求查找的项必须严格等于;
在没有找到的情况下返回-1;
八、迭代方法:
每个方法接收两个参数:运行函数,运行函数的作用域对象(可选);
函数会接收三个参数:数组项的值,该项在数组中的位置和数组对象
本身;function(item,index,array);
1查询符合某些条件的所有数组项:filter();
2对数组的每一项给定函数,每项都返回true,则为true。every();
3对数组的每一项给定函数,任一返回true,则为true 。some();
4对数组的每一项给定函数,返回每次函数调用的结果组成的数组:map();
5 forEach(); 没有返回值;
九、归并方法:
reduce(); 从数组的第一项开始 ,向后遍历;
reduceRight(); 从数组的的最后一项开始,向前遍历;
都接收两个参数:调用的函数,作为归并基础的初始值(可选);
调用的函数接收4个参数:前一个值、当前值、项的索引、数组对象;
函数的返回值会作为第一个参数自动传给下一项;
例:var value=[1,2,3,4,5];
var sum=value.reduce(function(prev,cur,index,array){
return prev + cur;
});
alert(sum);//15
Date类型:
1.创建日期对象的方法:
var now=new Date(); 可以传参;
Date.parse(): 接收一个表示日前的字符串参数,返回相应日期的毫秒数;
例:var someDate=new Date(Date.parse(“May 25,2004”));
等价与:var someDate=new Date(“May 25,2004”);
Date.UTC(): 同样返回毫秒数;
Date.UTC( 2005,4,5,17,55,55);
参数:年份、基于0的月份(1月为0)、月中的某一天、小时数、分钟、秒、毫秒;
2 . 继承的方法:
toLocaleString(); toString(); 返回日期;P101;
valueOf(); 返回日期的毫秒表示;可以比较大小;
3.日期时间的方法:P102;
4. 取得时间戳:Date.now() ; +new Date();//两种方法,首先考虑第一种
var start=+new Date();
Sum(1,2);
alert(1);
var stop=+new Date();
alert(stop-start);
RegExp类型:
创建正则表达式:
1. var pattern=/ [bc]at /flags; 字面量表示法
2. var pattern=new RegExp( “ 要匹配的字符串模式 ”, ”flags”);
所有元字符都要双重转义,转义过的字符也是如此
例如:字面量模式:/\[bc\]at/ 转义为 /\\[bc\\]at/ 前面加\;
RegExp实例属性:
globle: 布尔值,是否设置了g;
ignoerCase: i
multiline: m
lastIndex:搜索下一个匹配项的开始位置,从0 开始算;
source: 正则表达式的字符串表示,按照字面量的形式返回
RegExp实例方法:
exec(text) : 参数 :要应用模式的字符串,返回包含第一个匹配项信息的数组
没有匹配项,则返回null
额外属性:index :匹配项在字符串中的位置
input: 表示应用正则表达式的字符串
test(text): 返回布尔值 ,经常与if连用
toLocaleString()和toString() : 返回正则表达式的字面量
RegExp构造函数属性
使用这些属性可以从exec() 、test() 方法中提取更多的信息
两种访问方式:长、短属性名
input $_ : 最近一次要匹配的字符串
lastMatch $& : 最近一次的匹配项
lastParen $+ : 最近一次匹配的捕获组
(Opera不支持前三个);
leftContext $` : 匹配项之前的内容
rightContext $’ : 匹配项之后的内容
multiline $* : 布尔值IE、Opera 不支持
RegExp.$1 …… RegExp.$9 存储九个匹配的捕获组(编号的捕获组)
1. flags:
i: 忽略大小写;
g: 全部匹配;
m: 把\n识别为换行,多行模式;
2. 中括号
[abc]: 中括号中任意一个字符
[^abc]: 除了中括号中的任意一个字符
(linuw)|(php): 1. Linux 或php单词。2. 可实现向后引用$1,$2(replace替换)
(..) 3. 创造捕获组 4. $1…$9 存储捕获组
3. 元字符:
. : 任意一个字符,除了换行和行结束符;
\w : 任意一个字母、数字、下划线;
\W: 任意一个非 字母、数字、下划线;
\d : 任意一个数字
\D : 任意一个非数字
\s : 任意一个空格
\S : 任意一个非空格
\b : 单词边界
\B : 非单词边界
4. 量词:
+ 1个或多个
* 任意多个
? 1个或0个
{3} 3个
{3,5} 3个到5个
{3,} 3个以上
^ 行首 /^a/匹配"an A",而不匹配"An a"
$ 行末 /a$/匹配"An a",而不匹配"an A"
5. js中使用正则的字符串对象的方法
search();
match();
replace();
split();
6. 正则实例
电话号码:
phone.match(/^131\d{8}$/)
邮箱格式:
phone.match(/^\w+@\w+\.\w+$/i)
高级替换:
date="2016/05/11";
//2016-05-11
time= date.replace(/(\d+)\/(\d+)\/(\d+)/g,"$1-$2-$3");
alert(time);//2016-05-11
Function类型 :
1 函数是对象,函数名是指向函数对象的指针;
2定义函数的方法:
1. function sum(num1,num2){ } //函数声明
2. var sum=function(){} ;//注意分号,函数表达式
3. var sum=new Function(“ num1 ” , ”sum2” , ”return ”); //不推荐;
注意:1. 使用不带圆括号的函数名是访问函数指针,不调用函数;
2. 定义函数sum,赋值给anothersum ,将sum设为null,不影响anothersum进行sum操作。
3. 没有重载 ,同名函数 后面的会覆盖前面的
3 函数声明与函数表达式:
函数声明:解析器会率先读取函数声明,使其在任何代码之前可用,
函数表达式则不行;
4 作为值的函数:
1. 当作参数传给一个函数;
2. 当作另一个函数的结果返回;
5 函数内部属性
arguments :类数组对象,包含着传入函数的所有参数
callee:函数被调用时,arguments.callee 指向自身;
caller: 保存着调用当前函数的函数的引用,在全局作用域中调用则返回null;arguments.callee.caller
this : 引用函数执行的环境对象,当在全局作用域中调用函数this应用window;
6 函数属性和方法:
length :函数希望接收的命名参数的个数
prototype :保存所有实例方法的真正所在
两个非继承而来的方法,在特定的作用域中调用函数,实际上设置this
apply(): 两个参数 :运行函数的作用域 、array实例或arguments ;
call(): 多个参数 : this 、其余参数逐个列举,直接传给函数;
用途:扩充作用域
ES5方法:bind(); 创建一个函数实例,其this值会被绑定到穿个bind()函数的值,var objSayColor=sayColor.bind(obj);
继承的方法:
toString()和toLocaleString() ,始终返回函数的代码
基本包装类型:
Boolean,Number,String;
在访问基本类型值时,后台自动创建一个对应的实例,在实例上调用
方法,然后销毁这个实例;
例:不能为其添加属性和方法
var s1="chenzhijie";
s1.color="green";
alert(s1.color);//undefined
注意:所有基本包装类型的对象在转换为布尔类型时值都是true,
对基本包装类型的实例调用typeOf(),返回object;
因此不建议直接显示的创建基本包装类型的对象:
例:var obj=new Object(“some text”);
Boolean类型 :
valueOf(): 返回true/false;
toString(): 返回字符成”true”,”false”
Number类型:
toFixed(): 参数:小数位数;按照指定的小数位返回数值的字符串表示
例:var num=10.005;
alert(num.toFixed(2));//10.01
toExponential():参数:小数位数;返回以指数表示法表示的数值的字符串表示
var num=10;
alert(num.toExponential(1));//1.0e+1
toPrecision(): 参数:所有数字的位数(不包括指数), 按适合度,返回以上两种格式
var num=99;
alert(num.toPrecision(1));//1e+2
alert(num.toPrecision(2));//99
alert(num.toPrecision(3));//99.0
String类型:
1. Length属性
2. 继承方法valueOf(). toLocaleString(). toString().
都返回对象所表示的基本字符串值
3. 方法
charAt() 参数:字符位置,返回单个字符
stringValue(): 参数:字符位置,返回单个字符
charCodeAt() 参数:字符位置 ,返回字符编码
fromCharCode(): 参数 接收多个字符编码,返回字符串
( String构造函数本身的静态方法)
例:alert(String.fromCharCode(104,101,108,108,111));
4 . concat(): 参数:任意多个,拼接字符串
5. slice(),两个参数:开始位置和结束位置
substr(),两个参数:开始位置和结束位置
substring(): 两个参数:开始位置和返回的字符个数
对原始字符串无影响;
参数为负值时:slice() 参数与length相加
substr() 第一个参数与length相加,第二个为0;
substring() 所有负值参数都转化为0
6. indexOf()从开头 lastIndexOf() 从末尾 :搜索字符串,返回字符串位置,没找为-1;
参数:子字符串和开始位置。
7. trim() : 创建副本,删除前置及后缀的所有空格
8. 转换大小写:
toLowerCase()、 toLocaleCase()、 toUpperCase()、toLocaleUpperCase()
9. 模式匹配
search(); 参数:正则表达式 返回第一个匹配项的索引,没有则返回-1;
match(); 同exec() 。参数:正则表达式
replace();第一个参数:字符串或RegExp对象。第二个参数:字符串或函数
例子:
function rep(text){
return text.replace(/[<>"&]/g,function(match , pos , originalText){
switch(match){
case"<":
return "<";
case">":
return ">";
case "&":
return "&";
case "\"":
return """;
}
});
}
alert(rep("<p class=\" greeting\">hello\ world!</p>"));
split() ; 两个参数:指定分隔符(字符串、RegExp)和 指定数组大小
localeCompare(): 比较两个字符串
需要交换位置则返回1,相等为0 ,否则为-1
例: var stringValue='yellow';
alert(stringValue.localeCompare('brick'));//1
内置对象
Object Array String
单体内置对象:
Global和Math
Globle :(window对象来扮演)
1. 所有在全局作用域定义的属性和函数都是Globle对象的属性
所有原生引用类型的构造函数都是Globle对象 的属性
2. 对URI进行编码的方法,用UTF-8编码替换无效字符
encodeURI() :主要用于对整个URI
(不会对本身的特殊字符进行编码,例如:冒号,正斜杠,问号,冒号)
encodeURIComponent : 主要用于对URI中的某一段
(会替换所有非字母数字字符)
decodeURI() 、decodeURIComponent() 分别解码所对应的方法编码的字符
3. eval() 参数:要执行的字符串
A:可以引用在包含环境中定义的变量
var msg="hello";
eval('alert(msg)');
B:可以在eval() 调用中定义一个函数,然后在外部引用函数
eval("function sayHi(){alert('hi');}");
sayHi();
Math类型:
常用方法:
max()
min()
ceil() :向上取整
floor():向下取整
round(): 四舍五入取整
random():返回0-1之间的随机数
从整数范围内获取随机数的方法:
值=Math.floor(Math.random() * 可能值的个数 +第一个可能的值 );
var num=Math.floor(Math.random() * 10 + 1); //返回1-10 之间的随机数
阅读全文
0 0
- js 引用类型—Array类型
- JS:关于JS引用类型——Function类型
- Js———引用类型
- JS引用类型——Object
- JS引用类型——Array
- JS引用类型——Date
- JS 基础 —— ECMAScript 引用类型
- js学习笔记:引用类型——Object
- js学习笔记:引用类型——Array
- js学习笔记:引用类型——Date
- js学习笔记:引用类型——Function
- js学习笔记:引用类型——单体内置对象
- js学习笔记:引用类型——RegExp
- js数据类型 ——引用类型(Array).1/3
- js数据类型 ——引用类型(Array).2/3
- js数据类型 ——引用类型(Array).3/3
- 对js中的引用类型的理解(2)——Object类型
- 对js中的引用类型的理解(3)——Array类型
- offset三大家族
- bzoj 3126 单调队列优化dp
- BZOJ 4026 dC Loves Number Theory 主席树
- Js———变量及作用域
- opencv
- Js———引用类型
- Vijos1055(极大子矩阵)
- 单片机上操作系统的好处
- android中app互调唤起
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- robot framework 连接数据库
- 每日掌握一个linux命令 之 进程管理命令 ps
- json 基础知识
- mysql语句的增删查改