数码资讯
Javascript高级教程5.6的基本包类型(详细)
为了方便的基本类型的值的操作,还提供了3个特殊的ECMAscript引用类型:布尔值,数字,字符串。 事实上,当读取基本类型值时,后台处理对象创建相应的基本打包类型,这样我们就可以调用一些方法来处理这些数据。 一些文本; VaR S2 = s1.substring(2); console.log(S
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
为了方便的基本类型的值的操作,还提供了3个特殊的ECMAscript引用类型:布尔值,数字,字符串。
事实上,当读取基本类型值时,后台处理对象创建相应的基本打包类型,这样我们就可以调用一些方法来处理这些数据。
一些文本;
VaR S2 = s1.substring(2);
console.log(S2); / /我的文字
在本例中,S1包含一个字符串,字符串是基本类型值。第二行调用subsstring()S1和S2商店返回的结果的方法。
当代码的第二行访问S1时,访问过程处于一种读取模式,即从内存中读取该字符串的值。在读取模式下访问字符串时,后台自动完成以下处理。
(1)创建字符串类型的实例;
(2)在实例上调用指定的方法;
(3)摧毁例子。
以上三个步骤可以想象为以下代码:
var =新字符串(一些文本);
VaR S2 = s1.substring(2);
S1 = null;
console.log(S2); / /我的文字
在这个处理之后,基本字符串值变得与对象相同。上述三个步骤也适用于布尔值和数字类型分别对应的布尔值和数值。
引用类型和基本包类型之间的主要区别是对象的生命周期。
使用新操作符在存储在内存中的当前范围内的执行流中创建引用类型的实例。并且自动创建基本的包类型对象,它只存在于一行代码中,立即执行,然后立即销毁。这意味着我们不能在运行时添加基本类型的属性和方法。
一些文本;
颜色红色;
console.log(S1。颜色); / /未定义
问题是,在执行第三行代码时,第二行创建的String对象已被销毁。第三行代码创建自己的String对象,对象没有颜色属性。
调用基本包装类型、返回对象实例
对象构造函数也将返回到相应的基本包装器类型的实例,如工厂方法,基于传入值的类型。
var obj =新的对象(文本);
console.log(obj是字符串); / /真的
将字符串传递给对象构造函数将创建字符串的实例,数字参数将获得一个数字实例。传入的布尔参数将获得布尔实例。
需要注意的是,使用新调用基本包装器类型的构造函数不同于直接调用同一名称的转换函数。
var值 25 ;
var数字=数字(值);转换函数
console.log(型号); / /数量
var obj =新数(值); / /构造函数
console.log(typeof obj); / /对象
在这个例子中,变量数存储在基本型的值为25,和可变对象是数的一个实例。
5.6.1布尔型
布尔类型是与布尔值相对应的引用类型。要创建布尔对象,可以调用布尔构造函数,并传递true或false值如下所示。
无功booleanobject =新的布尔(真的);
布尔实例改写为()方法返回基本类型的值是true或false,重写toString()方法返回字符串真和假。然而,布尔对象是在ECMAscript没有用,因为它经常引起人们的误解。
最常见的问题是布尔表达式中使用布尔对象。
无功falseobject =新的布尔(假);
var result = falseobjecttrue;
console.log(结果); / /真的
无功falsevalue = false;
结果:falsevaluetrue;
console.log(结果); / /假
在本例中,使用false创建布尔对象。那么,对象的真实逻辑结构和表达方式以及价值的基本类型。此代码示例是不是falseobject价值(假)进行评价。布尔表达式的所有对象都将被转换为真实的,所以对布尔表达式代表falseobject对象是真实的。
基本的布尔类型和引用类型的值有两点不同:第一,typeof操作返回的引用类型或对象的基本类型布尔。其次,由于布尔对象是布尔类型的一个实例,所以instanceof测试布尔对象将返回真正的使用,测试基本类型的布尔值返回false。
console.log(typeof falseobject); / /对象
console.log(typeof falsevalue); / /布尔
console.log(falseobject是布尔); / /真的
console.log(falsevalue是布尔); / /假
5.6.2号码类型
数字是与数字值相对应的引用类型。若要创建数字对象,可以在调用数字构造函数时传递对应的值。
无功numberobject =新号(10);
console.log(typeof numberobject); / /对象
与布尔型、数字型的值改写(),tolocalestring toString()方法和()。
改写的值()方法返回的对象的情况下的基本类型的数值,和其他两个返回字符串形式的数值。
你可以传递一个参数表示的toString()方法的基数,并告诉它返回一个数的值的字符串形式。
var = 10;
console.log(num.tostring()); / / 10
console.log(num.tostring(2)); / / 1010
console.log(num.tostring(8)); / / 12
console.log(num.tostring(10)); / / 10
console.log(num.tostring(16)); / /
除了继承方法之外,数字类型还提供了许多方法,用于将数字值格式化为字符串。
在这,的固定()方法返回的值的字符串表示形式按指定的小数位数。
var = 10;
console.log(num.tofixed(2)); / / 10
这里的固定()方法引入到数2,这意味着显示几个小数。用0填充必要的十进制数。
如果数字本身比指定的数字包含更多的小数位数,则接近指定的最大十进制数的值将舍入。
var = 10.007;
console.log(num.tofixed(2)); / / 10.01
可以自动取整,的固定()方法适用于处理货币。但是请注意,此方法集的不同浏览器舍入规则可能不同。(0)为其介绍了IE8的情况下,与以前的版本不正确的范围中的舍入(-0.94,{ 0.5 },{ 0.5,0.94)}在IE的范围之间的一个值,将返回0,而不是1或1;其他浏览器能返回正确的值of.ie9修复这个问题。
用于格式化数字的另一种方法是toexponential(),该方法返回的索引符号(E表示)表示的字符串值。和固定()方法,toexponential()也接收一个参数,这个参数也是在输出指定小数位数。
var = 10;
console.log(num.toexponential(1)); / / 1.0e + 1
一个数值例子,(精密)方法可以返回一个固定大小的(固定的)格式,也可以返回指定格式;(指数)的具体规则是看哪种格式是最合适的。接收一个表示所有数字的位数(不包括索引)的方法。
var = 99;
console.log(num.toprecision(1)); / / 1E + 2
console.log(num.toprecision(2)); / / 99
console.log(num.toprecision(3)); / / 99
第二行是用一个数字表示99,第三行用两位数字表示,第四行用三位数字表示。
事实上,精密()将决定是否给其()或()调用toexponential基于数进行处理,并且这三种方法可以是圆形的或与正确的小数在最精确的形式表达的价值。
的精密()方法可以代表1到21位的十进制数字。
仍然不建议直接实例化数字类型。具体来说,结果是完全不同的,测试的基本类型和引用类型的数量通过typeof和instanceof运算符。
无功numberobject =新号(10);
无功numbervalue = 10;
console.log(typeof numberobject); / /对象
console.log(typeof numbervalue / /数);
console.log(numberobject实例数); / /真的
console.log(numbervalue实例数); / /假
当使用typeof运算符测试的基本类型的值,它总是返回数。在测试数字对象时,它将返回对象。类似地,数字对象是数字类型的一个实例,而基本类型号不是。
5.6.3字符串类型
字符串类型是字符串的对象包装器类型,可以用字符串构造函数创建如下。
无功strinbject =新的字符串(Hello World);
字符串对象的方法也可以在所有基本字符串值中访问。继承的值(),()toloalestring toString()方法返回,所有基本的字符串值所代表的对象。
字符串类型的每个实例都有一个长度属性,它表示字符串包含多个字符。
var =hello world StringValue ;
console.log(StringValue。长度);
需要注意的是,即使字符串包含一个双字节字符(不是字节中的ASCII字符),每个字符仍然是一个字符。
1。字符的方法
两种方法用于访问字符串中的特定字符:charAt()和()charcodeat。这两种方法都接收一个基于0个字符位置的参数。
charAt()方法返回一个给定一个字符串的形式位置的字符。
如果你想得到一个字符的编码不是一个角色而是一个字符的编码,你需要使用charcodeat()。
ECMAscript定义了另一种方式来访问单个字符。在支持此方法的浏览器中,我们可以使用方括号和数字索引来访问字符串中的特定字符。
var =hello world StringValue ;
console.log(StringValue { 1 }); / / E
语法使用方括号访问单个字符的所有版本的IE8和FF、Safari浏览器支持Chrome和Opera。如果你在IE7和更早的版本使用此语法,您将返回未定义的值。
2。字符串操作的方法
Concat(),它是用来连接一个或多个字符串一起返回新的字符串进行拼接。
VaR StringValue =你好;
VaR结果= stringvalue.concat(世界);
console.log(结果); / / HelloWorld
console.log(StringValue); / /你好
Concat()返回一个字符串拼接,不改变原数组的值。它可以接受任意数量的参数,也就是说,它可以通过它来拼接任意数量的字符串。
VaR StringValue =你好;
VaR结果= stringvalue.concat(世界
console.log(结果); / / hellowworld!
console.log(StringValue); / /你好
虽然concat()是一种特殊的方式拼接字符串,在实践中,它是更加运算符加+。此外,用加号操作符更加方便,在大多数情况下比使用concat()方法。
ECMAscript还提供了基于字符串创建新字符串的三种方法:片substr(),(),()和子串。
三方法返回一个字符串的字符串,但也接受一个或两个参数。第一个参数指定子字符串的起始位置,第二参数(在特定的情况下)说子到哪里结束(层)和子(二)指定的参数是在最后一个字符位置的子字符串。substr(二)指定的参数是字符数。如果没有返回这些方法,则传递第二个参数,字符串长度作为结束位置。和concat()方法,切片(substr)和子串()。()不会修改字符串字符串本身的值——它们只是对基本类型值的返回,对原始字符串没有影响。
var =hello world StringValue ;
console.log(stringvalue.slice(3)); / /看世界
console.log(stringvalue.substring(3)); / /看世界
console.log(stringvalue.substr(3)); / /看世界
console.log(stringvalue.slice(3,7)); / / LO W
console.log(stringvalue.substring(3,7)); / / LO W
console.log(stringvalue.substr(3,7)) / /看世界;
substr()返回看世界因为它的第二个参数指定的字符数返回。
这些方法的参数为负的情况下(片),将字符串和负输入的长度,(孔)的第一个参数的长度将是负面的字符串,并将负二参数为0。最后的子串()方法的所有。参数被转换为0。
var =hello world StringValue ;
console.log(stringvalue.slice(- 3)); / /世界
console.log(stringvalue.substring(- 3)); / /你好世界
console.log(stringvalue.substr(- 3)); / /世界
console.log(stringvalue.slice(3,4)); / / LO W
console.log(stringvalue.substring(3,4)); / /帮助
console.log(stringvalue.substr(3,4)); / /(空字符串)
注:IE的Javascript执行有问题时,处理函数的负值()方法,它返回原来的string.ie9解决问题。
当第二个参数是负的,三种不同的行为(切)方法对二参数为7(串)方法对二参数为0,因为这种方法会在数作为起始位置是小的,更大数量的节点作为梁的位置。Substr(二)将被转换成0个参数,即字符串包含零个字符,那是一个空字符串。
三.字符串位置的方法
有两种方法从字符串的子串:indexOf(),找到字符串()。这两种方法是寻找一个给定的从一个字符串的子串,然后返回子字符串的位置(如果没有字符串,然后返回- 1)。
indexOf()方法搜索子字符串从字符串的开始,和()方法搜索字符串的子字符串从字符串的末尾。
var =hello world StringValue ;
console.log(stringvalue.indexof(O)); / / 4
console.log(stringvalue.lastindexof(O)); / / 7
如果仅出现一次这个字符串,然后返回字符串()和()将返回相同的位置值。
这两种方法可以从字符串中的位置接收可选的第二个参数表示。换句话说,(指标)将返回从指定位置的参数搜索,忽略所有字符之前的位置;和(字符串)将从指定位置搜索,忽略所有的字符的位置之前。
var =hello world StringValue ;
console.log(stringvalue.indexof(),6); / / 4 6
console.log(stringvalue.indexof(O
console.log(stringvalue.lastindexof(O
VaR StringValue =乱数假文悲哀坐特,consectetur adipisicing精英;
var位置=新数组();
VaR POS = stringvalue.indexof();
当(POS > - 1){
Positions.push(POS);
POS = stringvalue.indexof(E
}
console.log(位置); / / { 3,24,32,35,52 }
本例通过增加indexOf()开始搜索的位置通过一长串的方法。在循环中,先找到E在初始位置的字符串,并进入循环,每一次指数(转移)与1个位置。确保从上次找到的每一个搜索开始返回字符串。每个搜索返回位置的位置存储在数组的位置,以供将来使用。
4.trim()方法
ECMAscript 5定义修剪()的所有字符串的方法。此方法创建字符串的副本,删除前缀和后缀的所有空格,并返回结果。
var =hello world StringValue ;
无功trimmedstringvalue = stringvalue.trim();
console.log(StringValue); / /你好世界
console.log(trimmedstringvalue); / /你好世界
修剪()返回字符串的副本,因此前面和后缀空间的原始字符串将保持不变。这种方法支持IE9 +,ff3.5 +徒步+浏览器,Opera和Chrome 10.5 +。ff3.5 +,此外,Safari 5和Chrome 8 + +还支持trimleft(非标准)和trimright()方法,分别。删除空格的开头和结尾的字符串。
5。字符串写入转换方法
有4种方法在字符串的大小写转换ECMAscript:toLowerCase(),(),tolocalelowercase toUpperCase()和(),tolocaleuppercase。
var =hello world StringValue ;
console.log(stringvalue.tolocaleuppercase()); / /你好世界
console.log(stringvalue.touppercase()); / /你好世界
console.log(stringvalue.tolocalelowercase()); / /你好世界
console.log(stringvalue.tolowercase()); / /你好世界
一般来说,使用基于区域的方法更安全,而不知道代码运行的语言环境。
一种6的模式匹配方法。串
字符串类型在字符串中定义了几种模式匹配方法。第一种方法是匹配(),调用字符串的方法,基本上是叫regexp()和执行(匹配)方法方法只接受一个参数,或者一个正则表达式,或者RegExp对象。
猫,蝙蝠,坐,胖;
var模式;
同pattern.exec /(文本)
VaR的比赛= text.match(模式);
console.log(比赛。指数); / / 0
console.log(比赛{ 0 }); / /猫
console.log(模式。lastIndex); / / 0
在这种情况下,比赛()方法返回一个数组;如果它是调用RegExp对象(EXEC)在这个例子中的方法,把字符串作为参数,它将具有相同的数组:第一是字符串匹配和整体模型的数组,每个项目后(如果有)保存捕获组匹配字符串的正则表达式。
另一种查找模式的方法是搜索()。唯一的参数和方法(比赛)为同一参数:A.搜索正则表达式的字符串或对象指定(正则表达式)方法返回一个字符串的第一个匹配项的索引;如果没有找到匹配,则返回1。搜索()始终是字符串向后搜索模式的开始。
猫,蝙蝠,坐,胖;
VaR POS = text.search( / /);
console.log(POS); / / 1
为了简化子字符串操作的置换,ECMAscript提供更换()方法。这种方法有两个参数:第一个参数可以是一个正则表达式对象或一个字符串(字符串会被转换成正则表达式),二参数可以是字符串或一个函数,如果第一个参数。是一个字符串,它将取代第一个子串。替换所有的子串,唯一的方法就是提供一个正则表达式,而且指定全局(G)的标志。
猫,蝙蝠,坐,胖;
VaR结果= text.replace(
console.log(结果); / /二,蝙蝠,坐着,脂肪
结果:text.replace( / / 和, / /);其次,债券,声,喜欢
以下是更换所有和通过修改第一个参数与全局标记的正则表达式。
如果第二个参数是字符串,也可以使用一些特殊字符序列将正则表达式操作所获得的值插入到结果字符串中。
下面列出的这些特殊的字符序列由ECMAscript如下。
字符序列
替换文本
索源
美元
美元
匹配整个模式的子串作为regexp.lastmatch值相同
$
在匹配的子字符串的子串。作为regexp.leftcontext相同的值
`美元
匹配的子串在串。作为regexp.rightcontext相同的值
$ n
匹配的捕获组的子串,其中n等于0 ~ 9 ..例如,1美元是匹配第一个捕获组的子串。2美元是符合二捕获组的子串。例如,如果在正则表达式中没有定义捕获组,则使用空字符串。
为神经网络
与NN捕获组的子串,其中NN等于01 ~ 99,例如,01美元是匹配第一个捕获组匹配的子串,02美元的第二捕获组的子串,等等。如果在正则表达式中没有定义捕获组,则使用空字符串。
通过这些特殊字符序列,可以使用最后一个匹配结果的内容。
猫,蝙蝠,坐,胖;
结果:text.replace( /(,)/ g,字(1美元));
console.log(结果); / /字(CAT),字(BAT),字(SAT),字(脂肪)。
这里,每一个单词的结尾都被替换,替换的结果是单词,后面跟着一对圆括号,括号是一个由字符序列替换为1美元的单词。
第二个参数也可以是函数。在只有一个匹配(即模式匹配字符串)的情况下,将将3个函数传递给函数:模式匹配、字符串位置的模式匹配和正则表达式中定义的原始字符串。在一个函数的参数条件下,一个捕获组是模式匹配,首先捕获组匹配,第二组匹配。捕获……但最后两个参数仍然是字符串和原始字符串中的模式匹配。这个函数应该返回一个应该替换的字符串,作为替换函数使用(第二)方法可以实现更精确的参数替换操作。
功能htmlescape(文本){
返回text.replace( / { <>} / g,功能(匹配,POS,原文){
开关(匹配){
:
返回<;
案例>:
返回>;
案例:
返回;
案例:
返回;
}
});
}
console.log(htmlescape(你好世界!**))!*
在这里,我们定义了一个htmlescape函数插入HTML代码(),该函数可以逃脱4个字:小于,大于,和数和双引号。实现这种转义的最简单方法是使用正则表达式查找这些字符,然后为每个定义一个匹配字符,返回函数的特定HTML示例。
最后,一个模式匹配的方法,该方法对分割()可以指定字符串转换成多个子字符串的分隔符,并将结果数组。分隔符可以是一个字符串,也可以是一个正则表达式对象(这种方法不会被视为一个普通的字符串分割的表达。())方法可以接受可选的第二个参数用于指定数组的大小,以确保返回的数组不超过规定尺寸。
VaR ColorText =红色,蓝色,绿色,黄色的;
VaR Color1 = colortext.split(
console.log(Color1); / / 红 {
var 2 = colortext.split(
console.log(2); / / 红 {
VaR的颜色= colortext.split( / { } + ^ , /);
console.log(颜色); / / {
在最后一个数组中称为拆分(),第一个和最后一个条目是两个空字符串。这是因为指定的分隔符出现在字符串的开头(子串红)和结束(子串黄色)通过正则表达式。
对正则表达式的支持(从浏览器到浏览器)各不相同。虽然简单模式没有区别,但是没有找到匹配和捕获组的模式的匹配行为是不同的。这里有几个睡眠差异。
IE8和以前的版本将不能够正确捕捉group.ie9包含结果中的捕获组。
ff3.6和以前的版本包含空字符串结果数组中没有比赛中的捕获组发现。ECMA-262标准规定,捕获组不匹配的项目应该由定义在结果数组。
正则表达式中的捕获组使用还有其他细微的区别。
7.localecompare()方法
此方法比较两个字符串并返回下列值之一:
如果字符串应该放在字母表中的字符串参数前面,则返回负数(大多数情况下是- 1,具体值取决于实现)。
如果字符串与字符串参数相等,则字符串返回0。
如果字符串应该是字母表中的字符串参数,那么它返回一个正数(在大多数情况下为1,具体值也取决于实现)。
VaR StringValue =黄色;
console.log(stringvalue.localecompare(砖)); / / 1
console.log(stringvalue.localecompare(黄)); / / 0
console.log(stringvalue.localecompare(动物园)); / / 1
因为localecompare()返回的值依赖于实现的,它是更好地使用这个方法,如下面的示例所示。
功能determineorder(值){
var result = stringvalue.localecompare(价值);
如果(结果< 0){
console.log(string'yellow'comes前的字符串+价值+ );
}如果(结果> 0){
console.log(string'yellow'comes字符串后+价值+ );
其他{ }
console.log(string'yellow'is等于字符串+价值+ ));
}
}
determineorder(砖);
determineorder(黄);
determineorder(动物园);
8.fromcharcode()方法
此外,string构造函数也有静态的方式:fromCharCode()。此方法的任务是接收一个或多个字符编码并将其转换为字符串。在本质上,这个方法与实例方法charcodeat相反的操作()。
上面的内容是关于Javascript高级教程5.6的基本包类型(详细),这是介绍给您的。希望你能喜欢。
事实上,当读取基本类型值时,后台处理对象创建相应的基本打包类型,这样我们就可以调用一些方法来处理这些数据。
一些文本;
VaR S2 = s1.substring(2);
console.log(S2); / /我的文字
在本例中,S1包含一个字符串,字符串是基本类型值。第二行调用subsstring()S1和S2商店返回的结果的方法。
当代码的第二行访问S1时,访问过程处于一种读取模式,即从内存中读取该字符串的值。在读取模式下访问字符串时,后台自动完成以下处理。
(1)创建字符串类型的实例;
(2)在实例上调用指定的方法;
(3)摧毁例子。
以上三个步骤可以想象为以下代码:
var =新字符串(一些文本);
VaR S2 = s1.substring(2);
S1 = null;
console.log(S2); / /我的文字
在这个处理之后,基本字符串值变得与对象相同。上述三个步骤也适用于布尔值和数字类型分别对应的布尔值和数值。
引用类型和基本包类型之间的主要区别是对象的生命周期。
使用新操作符在存储在内存中的当前范围内的执行流中创建引用类型的实例。并且自动创建基本的包类型对象,它只存在于一行代码中,立即执行,然后立即销毁。这意味着我们不能在运行时添加基本类型的属性和方法。
一些文本;
颜色红色;
console.log(S1。颜色); / /未定义
问题是,在执行第三行代码时,第二行创建的String对象已被销毁。第三行代码创建自己的String对象,对象没有颜色属性。
调用基本包装类型、返回对象实例
对象构造函数也将返回到相应的基本包装器类型的实例,如工厂方法,基于传入值的类型。
var obj =新的对象(文本);
console.log(obj是字符串); / /真的
将字符串传递给对象构造函数将创建字符串的实例,数字参数将获得一个数字实例。传入的布尔参数将获得布尔实例。
需要注意的是,使用新调用基本包装器类型的构造函数不同于直接调用同一名称的转换函数。
var值 25 ;
var数字=数字(值);转换函数
console.log(型号); / /数量
var obj =新数(值); / /构造函数
console.log(typeof obj); / /对象
在这个例子中,变量数存储在基本型的值为25,和可变对象是数的一个实例。
5.6.1布尔型
布尔类型是与布尔值相对应的引用类型。要创建布尔对象,可以调用布尔构造函数,并传递true或false值如下所示。
无功booleanobject =新的布尔(真的);
布尔实例改写为()方法返回基本类型的值是true或false,重写toString()方法返回字符串真和假。然而,布尔对象是在ECMAscript没有用,因为它经常引起人们的误解。
最常见的问题是布尔表达式中使用布尔对象。
无功falseobject =新的布尔(假);
var result = falseobjecttrue;
console.log(结果); / /真的
无功falsevalue = false;
结果:falsevaluetrue;
console.log(结果); / /假
在本例中,使用false创建布尔对象。那么,对象的真实逻辑结构和表达方式以及价值的基本类型。此代码示例是不是falseobject价值(假)进行评价。布尔表达式的所有对象都将被转换为真实的,所以对布尔表达式代表falseobject对象是真实的。
基本的布尔类型和引用类型的值有两点不同:第一,typeof操作返回的引用类型或对象的基本类型布尔。其次,由于布尔对象是布尔类型的一个实例,所以instanceof测试布尔对象将返回真正的使用,测试基本类型的布尔值返回false。
console.log(typeof falseobject); / /对象
console.log(typeof falsevalue); / /布尔
console.log(falseobject是布尔); / /真的
console.log(falsevalue是布尔); / /假
5.6.2号码类型
数字是与数字值相对应的引用类型。若要创建数字对象,可以在调用数字构造函数时传递对应的值。
无功numberobject =新号(10);
console.log(typeof numberobject); / /对象
与布尔型、数字型的值改写(),tolocalestring toString()方法和()。
改写的值()方法返回的对象的情况下的基本类型的数值,和其他两个返回字符串形式的数值。
你可以传递一个参数表示的toString()方法的基数,并告诉它返回一个数的值的字符串形式。
var = 10;
console.log(num.tostring()); / / 10
console.log(num.tostring(2)); / / 1010
console.log(num.tostring(8)); / / 12
console.log(num.tostring(10)); / / 10
console.log(num.tostring(16)); / /
除了继承方法之外,数字类型还提供了许多方法,用于将数字值格式化为字符串。
在这,的固定()方法返回的值的字符串表示形式按指定的小数位数。
var = 10;
console.log(num.tofixed(2)); / / 10
这里的固定()方法引入到数2,这意味着显示几个小数。用0填充必要的十进制数。
如果数字本身比指定的数字包含更多的小数位数,则接近指定的最大十进制数的值将舍入。
var = 10.007;
console.log(num.tofixed(2)); / / 10.01
可以自动取整,的固定()方法适用于处理货币。但是请注意,此方法集的不同浏览器舍入规则可能不同。(0)为其介绍了IE8的情况下,与以前的版本不正确的范围中的舍入(-0.94,{ 0.5 },{ 0.5,0.94)}在IE的范围之间的一个值,将返回0,而不是1或1;其他浏览器能返回正确的值of.ie9修复这个问题。
用于格式化数字的另一种方法是toexponential(),该方法返回的索引符号(E表示)表示的字符串值。和固定()方法,toexponential()也接收一个参数,这个参数也是在输出指定小数位数。
var = 10;
console.log(num.toexponential(1)); / / 1.0e + 1
一个数值例子,(精密)方法可以返回一个固定大小的(固定的)格式,也可以返回指定格式;(指数)的具体规则是看哪种格式是最合适的。接收一个表示所有数字的位数(不包括索引)的方法。
var = 99;
console.log(num.toprecision(1)); / / 1E + 2
console.log(num.toprecision(2)); / / 99
console.log(num.toprecision(3)); / / 99
第二行是用一个数字表示99,第三行用两位数字表示,第四行用三位数字表示。
事实上,精密()将决定是否给其()或()调用toexponential基于数进行处理,并且这三种方法可以是圆形的或与正确的小数在最精确的形式表达的价值。
的精密()方法可以代表1到21位的十进制数字。
仍然不建议直接实例化数字类型。具体来说,结果是完全不同的,测试的基本类型和引用类型的数量通过typeof和instanceof运算符。
无功numberobject =新号(10);
无功numbervalue = 10;
console.log(typeof numberobject); / /对象
console.log(typeof numbervalue / /数);
console.log(numberobject实例数); / /真的
console.log(numbervalue实例数); / /假
当使用typeof运算符测试的基本类型的值,它总是返回数。在测试数字对象时,它将返回对象。类似地,数字对象是数字类型的一个实例,而基本类型号不是。
5.6.3字符串类型
字符串类型是字符串的对象包装器类型,可以用字符串构造函数创建如下。
无功strinbject =新的字符串(Hello World);
字符串对象的方法也可以在所有基本字符串值中访问。继承的值(),()toloalestring toString()方法返回,所有基本的字符串值所代表的对象。
字符串类型的每个实例都有一个长度属性,它表示字符串包含多个字符。
var =hello world StringValue ;
console.log(StringValue。长度);
需要注意的是,即使字符串包含一个双字节字符(不是字节中的ASCII字符),每个字符仍然是一个字符。
1。字符的方法
两种方法用于访问字符串中的特定字符:charAt()和()charcodeat。这两种方法都接收一个基于0个字符位置的参数。
charAt()方法返回一个给定一个字符串的形式位置的字符。
如果你想得到一个字符的编码不是一个角色而是一个字符的编码,你需要使用charcodeat()。
ECMAscript定义了另一种方式来访问单个字符。在支持此方法的浏览器中,我们可以使用方括号和数字索引来访问字符串中的特定字符。
var =hello world StringValue ;
console.log(StringValue { 1 }); / / E
语法使用方括号访问单个字符的所有版本的IE8和FF、Safari浏览器支持Chrome和Opera。如果你在IE7和更早的版本使用此语法,您将返回未定义的值。
2。字符串操作的方法
Concat(),它是用来连接一个或多个字符串一起返回新的字符串进行拼接。
VaR StringValue =你好;
VaR结果= stringvalue.concat(世界);
console.log(结果); / / HelloWorld
console.log(StringValue); / /你好
Concat()返回一个字符串拼接,不改变原数组的值。它可以接受任意数量的参数,也就是说,它可以通过它来拼接任意数量的字符串。
VaR StringValue =你好;
VaR结果= stringvalue.concat(世界
console.log(结果); / / hellowworld!
console.log(StringValue); / /你好
虽然concat()是一种特殊的方式拼接字符串,在实践中,它是更加运算符加+。此外,用加号操作符更加方便,在大多数情况下比使用concat()方法。
ECMAscript还提供了基于字符串创建新字符串的三种方法:片substr(),(),()和子串。
三方法返回一个字符串的字符串,但也接受一个或两个参数。第一个参数指定子字符串的起始位置,第二参数(在特定的情况下)说子到哪里结束(层)和子(二)指定的参数是在最后一个字符位置的子字符串。substr(二)指定的参数是字符数。如果没有返回这些方法,则传递第二个参数,字符串长度作为结束位置。和concat()方法,切片(substr)和子串()。()不会修改字符串字符串本身的值——它们只是对基本类型值的返回,对原始字符串没有影响。
var =hello world StringValue ;
console.log(stringvalue.slice(3)); / /看世界
console.log(stringvalue.substring(3)); / /看世界
console.log(stringvalue.substr(3)); / /看世界
console.log(stringvalue.slice(3,7)); / / LO W
console.log(stringvalue.substring(3,7)); / / LO W
console.log(stringvalue.substr(3,7)) / /看世界;
substr()返回看世界因为它的第二个参数指定的字符数返回。
这些方法的参数为负的情况下(片),将字符串和负输入的长度,(孔)的第一个参数的长度将是负面的字符串,并将负二参数为0。最后的子串()方法的所有。参数被转换为0。
var =hello world StringValue ;
console.log(stringvalue.slice(- 3)); / /世界
console.log(stringvalue.substring(- 3)); / /你好世界
console.log(stringvalue.substr(- 3)); / /世界
console.log(stringvalue.slice(3,4)); / / LO W
console.log(stringvalue.substring(3,4)); / /帮助
console.log(stringvalue.substr(3,4)); / /(空字符串)
注:IE的Javascript执行有问题时,处理函数的负值()方法,它返回原来的string.ie9解决问题。
当第二个参数是负的,三种不同的行为(切)方法对二参数为7(串)方法对二参数为0,因为这种方法会在数作为起始位置是小的,更大数量的节点作为梁的位置。Substr(二)将被转换成0个参数,即字符串包含零个字符,那是一个空字符串。
三.字符串位置的方法
有两种方法从字符串的子串:indexOf(),找到字符串()。这两种方法是寻找一个给定的从一个字符串的子串,然后返回子字符串的位置(如果没有字符串,然后返回- 1)。
indexOf()方法搜索子字符串从字符串的开始,和()方法搜索字符串的子字符串从字符串的末尾。
var =hello world StringValue ;
console.log(stringvalue.indexof(O)); / / 4
console.log(stringvalue.lastindexof(O)); / / 7
如果仅出现一次这个字符串,然后返回字符串()和()将返回相同的位置值。
这两种方法可以从字符串中的位置接收可选的第二个参数表示。换句话说,(指标)将返回从指定位置的参数搜索,忽略所有字符之前的位置;和(字符串)将从指定位置搜索,忽略所有的字符的位置之前。
var =hello world StringValue ;
console.log(stringvalue.indexof(),6); / / 4 6
console.log(stringvalue.indexof(O
console.log(stringvalue.lastindexof(O
VaR StringValue =乱数假文悲哀坐特,consectetur adipisicing精英;
var位置=新数组();
VaR POS = stringvalue.indexof();
当(POS > - 1){
Positions.push(POS);
POS = stringvalue.indexof(E
}
console.log(位置); / / { 3,24,32,35,52 }
本例通过增加indexOf()开始搜索的位置通过一长串的方法。在循环中,先找到E在初始位置的字符串,并进入循环,每一次指数(转移)与1个位置。确保从上次找到的每一个搜索开始返回字符串。每个搜索返回位置的位置存储在数组的位置,以供将来使用。
4.trim()方法
ECMAscript 5定义修剪()的所有字符串的方法。此方法创建字符串的副本,删除前缀和后缀的所有空格,并返回结果。
var =hello world StringValue ;
无功trimmedstringvalue = stringvalue.trim();
console.log(StringValue); / /你好世界
console.log(trimmedstringvalue); / /你好世界
修剪()返回字符串的副本,因此前面和后缀空间的原始字符串将保持不变。这种方法支持IE9 +,ff3.5 +徒步+浏览器,Opera和Chrome 10.5 +。ff3.5 +,此外,Safari 5和Chrome 8 + +还支持trimleft(非标准)和trimright()方法,分别。删除空格的开头和结尾的字符串。
5。字符串写入转换方法
有4种方法在字符串的大小写转换ECMAscript:toLowerCase(),(),tolocalelowercase toUpperCase()和(),tolocaleuppercase。
var =hello world StringValue ;
console.log(stringvalue.tolocaleuppercase()); / /你好世界
console.log(stringvalue.touppercase()); / /你好世界
console.log(stringvalue.tolocalelowercase()); / /你好世界
console.log(stringvalue.tolowercase()); / /你好世界
一般来说,使用基于区域的方法更安全,而不知道代码运行的语言环境。
一种6的模式匹配方法。串
字符串类型在字符串中定义了几种模式匹配方法。第一种方法是匹配(),调用字符串的方法,基本上是叫regexp()和执行(匹配)方法方法只接受一个参数,或者一个正则表达式,或者RegExp对象。
猫,蝙蝠,坐,胖;
var模式;
同pattern.exec /(文本)
VaR的比赛= text.match(模式);
console.log(比赛。指数); / / 0
console.log(比赛{ 0 }); / /猫
console.log(模式。lastIndex); / / 0
在这种情况下,比赛()方法返回一个数组;如果它是调用RegExp对象(EXEC)在这个例子中的方法,把字符串作为参数,它将具有相同的数组:第一是字符串匹配和整体模型的数组,每个项目后(如果有)保存捕获组匹配字符串的正则表达式。
另一种查找模式的方法是搜索()。唯一的参数和方法(比赛)为同一参数:A.搜索正则表达式的字符串或对象指定(正则表达式)方法返回一个字符串的第一个匹配项的索引;如果没有找到匹配,则返回1。搜索()始终是字符串向后搜索模式的开始。
猫,蝙蝠,坐,胖;
VaR POS = text.search( / /);
console.log(POS); / / 1
为了简化子字符串操作的置换,ECMAscript提供更换()方法。这种方法有两个参数:第一个参数可以是一个正则表达式对象或一个字符串(字符串会被转换成正则表达式),二参数可以是字符串或一个函数,如果第一个参数。是一个字符串,它将取代第一个子串。替换所有的子串,唯一的方法就是提供一个正则表达式,而且指定全局(G)的标志。
猫,蝙蝠,坐,胖;
VaR结果= text.replace(
console.log(结果); / /二,蝙蝠,坐着,脂肪
结果:text.replace( / / 和, / /);其次,债券,声,喜欢
以下是更换所有和通过修改第一个参数与全局标记的正则表达式。
如果第二个参数是字符串,也可以使用一些特殊字符序列将正则表达式操作所获得的值插入到结果字符串中。
下面列出的这些特殊的字符序列由ECMAscript如下。
字符序列
替换文本
索源
美元
美元
匹配整个模式的子串作为regexp.lastmatch值相同
$
在匹配的子字符串的子串。作为regexp.leftcontext相同的值
`美元
匹配的子串在串。作为regexp.rightcontext相同的值
$ n
匹配的捕获组的子串,其中n等于0 ~ 9 ..例如,1美元是匹配第一个捕获组的子串。2美元是符合二捕获组的子串。例如,如果在正则表达式中没有定义捕获组,则使用空字符串。
为神经网络
与NN捕获组的子串,其中NN等于01 ~ 99,例如,01美元是匹配第一个捕获组匹配的子串,02美元的第二捕获组的子串,等等。如果在正则表达式中没有定义捕获组,则使用空字符串。
通过这些特殊字符序列,可以使用最后一个匹配结果的内容。
猫,蝙蝠,坐,胖;
结果:text.replace( /(,)/ g,字(1美元));
console.log(结果); / /字(CAT),字(BAT),字(SAT),字(脂肪)。
这里,每一个单词的结尾都被替换,替换的结果是单词,后面跟着一对圆括号,括号是一个由字符序列替换为1美元的单词。
第二个参数也可以是函数。在只有一个匹配(即模式匹配字符串)的情况下,将将3个函数传递给函数:模式匹配、字符串位置的模式匹配和正则表达式中定义的原始字符串。在一个函数的参数条件下,一个捕获组是模式匹配,首先捕获组匹配,第二组匹配。捕获……但最后两个参数仍然是字符串和原始字符串中的模式匹配。这个函数应该返回一个应该替换的字符串,作为替换函数使用(第二)方法可以实现更精确的参数替换操作。
功能htmlescape(文本){
返回text.replace( / { <>} / g,功能(匹配,POS,原文){
开关(匹配){
:
返回<;
案例>:
返回>;
案例:
返回;
案例:
返回;
}
});
}
console.log(htmlescape(你好世界!**))!*
在这里,我们定义了一个htmlescape函数插入HTML代码(),该函数可以逃脱4个字:小于,大于,和数和双引号。实现这种转义的最简单方法是使用正则表达式查找这些字符,然后为每个定义一个匹配字符,返回函数的特定HTML示例。
最后,一个模式匹配的方法,该方法对分割()可以指定字符串转换成多个子字符串的分隔符,并将结果数组。分隔符可以是一个字符串,也可以是一个正则表达式对象(这种方法不会被视为一个普通的字符串分割的表达。())方法可以接受可选的第二个参数用于指定数组的大小,以确保返回的数组不超过规定尺寸。
VaR ColorText =红色,蓝色,绿色,黄色的;
VaR Color1 = colortext.split(
console.log(Color1); / / 红 {
var 2 = colortext.split(
console.log(2); / / 红 {
VaR的颜色= colortext.split( / { } + ^ , /);
console.log(颜色); / / {
在最后一个数组中称为拆分(),第一个和最后一个条目是两个空字符串。这是因为指定的分隔符出现在字符串的开头(子串红)和结束(子串黄色)通过正则表达式。
对正则表达式的支持(从浏览器到浏览器)各不相同。虽然简单模式没有区别,但是没有找到匹配和捕获组的模式的匹配行为是不同的。这里有几个睡眠差异。
IE8和以前的版本将不能够正确捕捉group.ie9包含结果中的捕获组。
ff3.6和以前的版本包含空字符串结果数组中没有比赛中的捕获组发现。ECMA-262标准规定,捕获组不匹配的项目应该由定义在结果数组。
正则表达式中的捕获组使用还有其他细微的区别。
7.localecompare()方法
此方法比较两个字符串并返回下列值之一:
如果字符串应该放在字母表中的字符串参数前面,则返回负数(大多数情况下是- 1,具体值取决于实现)。
如果字符串与字符串参数相等,则字符串返回0。
如果字符串应该是字母表中的字符串参数,那么它返回一个正数(在大多数情况下为1,具体值也取决于实现)。
VaR StringValue =黄色;
console.log(stringvalue.localecompare(砖)); / / 1
console.log(stringvalue.localecompare(黄)); / / 0
console.log(stringvalue.localecompare(动物园)); / / 1
因为localecompare()返回的值依赖于实现的,它是更好地使用这个方法,如下面的示例所示。
功能determineorder(值){
var result = stringvalue.localecompare(价值);
如果(结果< 0){
console.log(string'yellow'comes前的字符串+价值+ );
}如果(结果> 0){
console.log(string'yellow'comes字符串后+价值+ );
其他{ }
console.log(string'yellow'is等于字符串+价值+ ));
}
}
determineorder(砖);
determineorder(黄);
determineorder(动物园);
8.fromcharcode()方法
此外,string构造函数也有静态的方式:fromCharCode()。此方法的任务是接收一个或多个字符编码并将其转换为字符串。在本质上,这个方法与实例方法charcodeat相反的操作()。
上面的内容是关于Javascript高级教程5.6的基本包类型(详细),这是介绍给您的。希望你能喜欢。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。