js-基础知识-String

作者:zccst


2014-10-15
JavaScript中String与New String的区别

不加new相当于类型转换函数,按照规则进行类型转换。(来自权威指南3.6节 包装对象)
加new相当于显式创建一个包装对象。
包装对象与普通对象的区别是,包装对象的属性和方法都是只读的,不允许用户改动,也不允许用户新定义。
例如:
var s = "test";
s.len = 4; //对包装对象加了一个方法,执行完毕后立即销毁,第三行读不到
var t = s.len;//出错

结论:对包装对象修改,相当于修改了一个临时对象(包装对象就是临时对象)

var s = "test";//一个字符串
var S = new String(s);//一个对象
两者的值是相等的,用==是true,用===为false。通过typeof可以看到两者的区别。



var fruit = String('Apple'); //通过String直接创建的字符串为基本数据类型,属于JavaScript中的直接量(包含数字,以及数组、对象和正则表达式、数字和布尔值的直接量格式)。

var city = New String('HongKong'); //通过 New String来实例化的是一个String对象, 所以我们可以调用String对象的方法:
var lcCity = city.toLowerCase(city); //Out put hongkong


如果我们需要在一个直接量上访问String对象方法, 那么Javascript引擎会创建一个String对象, 用它包含了字符串直接量, 执行方法调用,然后再丢弃String对象。

如果我们用不到String对象属性, 那么我们应该尽可能使用字符串直接量。


2014-6-25
一直以为concat是数组方法,原理字符串也有concat方法,作用是连接两个字符串。

/**
* concat作为字符串函数时,连接两个字符串
* str.concat(string2, string3[, ..., stringN])
* 结果给了第一个字符串str,不影响其他字符串
*/
var a = "abc123a ";
var b = a.concat();
console.log(a.concat());
console.log(b.length);

批注:执行效率:+/+= > concat, join的,

刚查了还有一个跟数组方法同名的是slice,用法也很像。


2013年5月14日批注:
string功能稍强大,(相比数组)可以快速查找子串,使用indexOf()。常用的方法有

1,查找子串
substr
indexOf
replace
charAt


2,字符串转数组。
split
备注:数组转字符串用join(',');


String 对象用于处理文本(字符串)

String 对象描述
字符串是 JavaScript 的一种基本的数据类型。
String 对象的 length 属性声明了该字符串中的字符数。
String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。

需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。


String 对象方法

方法 描述 FF IE
anchor() 创建 HTML 锚。 1 3
big() 用大号字体显示字符串。 1 3
blink() 显示闪动字符串。 1
bold() 使用粗体显示字符串。 1 3
charAt() 返回在指定位置的字符。 1 3
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。 1 4
concat() 连接字符串。 1 4
fixed() 以打字机文本显示字符串。 1 3
fontcolor() 使用指定的颜色来显示字符串。 1 3
fontsize() 使用指定的尺寸来显示字符串。 1 3
fromCharCode() 从字符编码创建一个字符串。 1 4
indexOf() 检索字符串。 1 3
italics() 使用斜体显示字符串。 1 3
lastIndexOf() 从后向前搜索字符串。 1 3
link() 将字符串显示为链接。 1 3
localeCompare() 用本地特定的顺序来比较两个字符串。 1 4
match() 找到一个或多个正则表达式的匹配。 1 4
replace() 替换与正则表达式匹配的子串。 1 4
search() 检索与正则表达式相匹配的值。 1 4
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。 1 4
small() 使用小字号来显示字符串。 1 3
split() 把字符串分割为字符串数组。 1 4
strike() 使用删除线来显示字符串。 1 3
sub() 把字符串显示为下标。 1 3
substr() 从起始索引号提取字符串中指定数目的字符。 1 4
substring() 提取字符串中两个指定的索引号之间的字符。 1 3
sup() 把字符串显示为上标。 1 3
toLocaleLowerCase() 把字符串转换为小写。 - -
toLocaleUpperCase() 把字符串转换为大写。 - -
toLowerCase() 把字符串转换为小写。 1 3
toUpperCase() 把字符串转换为大写。 1 3
toSource() 代表对象的源代码。 1 -
toString() 返回字符串。 - -
valueOf() 返回某个字符串对象的原始值。 1 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值