资讯专栏INFORMATION COLUMN

《javascript高级程序设计》笔记:Sting类型及其转换

alaege / 428人阅读

摘要:字符串的不可变性中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。

字符串的不可变性

ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变 某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量

通俗的说,操作字符串时并不会在原来的字符串上修改,而是重新开辟内存,生成新的字符串,把变量重新指向新的字符串,原来的字符串不会马上消失,要等待垃圾回收机制回收

实现字符串拼接的几种方式

当拼接的字符串数目较少时,建议使用第一种

(1)用连接符“+”把要连接的字符串连

str = "a";
str += "b";

毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便

(2)以数组作为中介用 join 连接字符串

var arr=new Array();
arr.push(a);
arr.push(b);
var str=arr.join("");

w3school 网站介绍说这种方法要比第一种消耗更少的资源,速度也更快

(3)利用对象属性来连接字符串

function stringConnect(){
  this._str_ = new Array();
}

stringConnect.prototype.append = function(a){
  this._str_.push(a);
}

stringConnect.prototype.toString = function(){
  return this._str_.join();
}

var mystr = new stringConnect;
mystr.append("a");
var str = mystr.toString();
字符串的转换

快速转换:使用加号操作符把它与一个字符串("")加在一起 <==> String()

(1)toSting()
注意:undefined和null没有toString()这个方法

var age = 11;
var ageAsString = age.toString(); // 字符串"11" 
var found = true;
var foundAsString = found.toString(); // 字符串"true"

指定基数后能够返回指定进制的字符串

var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"

(2) String()

这个函数能够将任何类型的值转换为字符串,String()函数遵循下列转换规则:

如果值有 toString()方法,则调用该方法(没有参数)并返回相应的结果;

如果值是 null,则返回"null";

如果值是 undefined,则返回"undefined"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84775.html

相关文章

  • javascript高级程序设计笔记:关系运算符与相等运算符

    摘要:要比较相等性之前,不能将和转换成其他任何值。如果有一个操作数是,则相等操作符返回,而不相等操作符返回。重要提示即使两个操作数都是,相等操作符也返回因为按照规则,不等于。 关系运算符 关系运算符有小于()、小于等于(=)四种,它们都返回一个布尔值 《javascript高级程序设计》书中的规则是这样描述运算规则: (1)如果两个操作数都是数值,则执行数值比较; (2)如果两个操作数都是字...

    Blackjun 评论0 收藏0
  • JavaScript高级程序设计学习笔记三(基本语法)

    摘要:数据类型中有种简单数据类型也称为基本数据类型和。在中非空字符串,非零数字,任意对象,都被认为。而空字符串,和,,认为是。用于表示整数和浮点数。标识符由数字字母下划线美元符组成,但首字母不能是数字。变量方法对象命名推荐驼峰法。 JavaScript语法 一.语法简介 因为JavaScript语法和Java等语法非常类似。所以只是简单介绍一下。 大小写 JavaScript是大小写敏感的语...

    Mike617 评论0 收藏0
  • JavaScript高级程序设计笔记:基本概念

    摘要:一写在前面最近重读高级程序设计,总结下来,查漏补缺。但这种影响是单向的修改命名参数不会改变中对应的值。这是因为对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的。实际改变会同步,改变也会同步 一、写在前面 最近重读《JavaScript高级程序设计》,总结下来,查漏补缺。 二、JS简介 2.1 JS组成 ECMAscript:以ECMA-262为基础的语言,由...

    ygyooo 评论0 收藏0
  • javascript高级程序设计笔记:Number类型

    摘要:用表示法表示的数值等于前面的数值乘以的指数次幂。下面是一个使用表示法表示数值的例子等于注意浮点类型精度控制的两个方法是原型上实现的一个方法,其作用是对一个浮点数进行四舍五入并保留固定小数位。 进制表示 谈到Number类型,不得不提进制(此处不做过多介绍)八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7)十六进制字面值的前两位必须是 0x,后跟任何十六进制数字(0~9 ...

    Tychio 评论0 收藏0
  • 读书笔记(06) - 语法基础 - JavaScript高级程序设计

    摘要:写在开头本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了。可移步笔者的文章中替换方式参考文档高级程序设计作者以乐之名本文原创,有不当的地方欢迎指出。 showImg(https://segmentfault.com/img/bVblGMc?w=600&h=400); 写在开头 本篇是小红书笔记的第六篇,也许你会奇怪第六篇笔记才写语法基础,笔者是不是穿越了。...

    iOS122 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<