内容
---语法 上一小节---数据类型 本小节 String类型---流程控制语句---理解函数String类型
--零个或者多个16位Unicode字符组成字符序列,即字符串--可以由双引号"",或者单引号''表示,没有区别--引号成对匹配使用,单双引号不能混用var str = "hello"; //可以
var str1 = 'hello'; //可以var str2 = "hello'; //语法错误字符字面量
--特殊字符字面量,转义序列(转义字符)\n 换行\t 制表table键\b 空格\r 回车\f 进纸\\ 斜杠\' 单引号('),在用单引号表示的字符串中使用,'He said \'hey.\' '\" 双引号("),在用双引号表示的字符串中使用,"He said \"hey.\" "\xnn 十六进制代码nn表示一个字符(其中n为0~F) 如,\x41表示"A"\unnnn 十六进制码表示一个Unicode字符(其中n为0~F)如,\u03a3表示希腊字符Σ--在双引号字符串中可直接使用单引号,同理单引号中也可直接使用双引号
--字符字面量可出现在字符串任意位置,将被作为一个字符来解析var text = "This is the letter sigma: \u03a3.";text //"This is the letter sigma: Σ."text.length //28--汉字 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
字符串特点--字符串一旦创建,不可变。--要改变某个变量保存的字符串,首先销毁原来的字符串,再用新值填充。var lang = "Java";
lang = lang + "Script";--首先创建一个容纳10个字符的新字符串,填充"Java"和"Script"
--最后一步销毁原来的两个字符串。--后台发生,旧版浏览器字符串拼接速度慢的原因字符串转换
--几乎每个值都有toString()方法,返回字符串表现,--数值,布尔值,对象,字符串--除了null和undefinedvar age = 11;
age.toString(); //"11"var found = true;found.toString(); //"true"--数值toString(radix) 可带基数
--返回不同进制数,默认十进制转型函数String()
--如果值有toString()方法,调用之--null 返回 "null"--undefined 返回 "undefined"--把某个值 + "" ,等同于String();
var a = null;
a + ""; //"null"var b;b + ""; //"undefined"var c = true;c + ""; //"true" Object类型--ECMAScript中的对象其实就是一组数据和功能的集合--通过new 操作来创建对象,为其添加属性或者方法就可以创建自定义对象var o = new Object();
var o = new Object; //不建议--不传参可以省略括号,不建议
--类似java object类是所有类实例的基础--即Object类具有的任何属性和方法也同样存在于更具体的对象中。Object的每个实例都具有下列属性和方法
--Constructor:保存用于创建当前对象的函数,构造函数--hasOwnProperty(propertyName):用于检查给定的属性在当前对象中(不是在实例的原型中)是否存在,其中参数必须是字符串。--isPrototypeOf(object):检查传入的对象是否是另一个对象的原型--propertyIsEnumerable(propertyName):检查给定属性是否能够使用for-in来枚举参数必须字符串--toLocaleString():返回对象的字符串表示,与执行环境地区对应--toString():返回对象的字符串表示valueOf():返回对象的字符串,数值,布尔值表示,通常于toString()方法返回值相同--技术上说,ecma-262中的对象行为不一定适用于JavaScript中的其他对象,
--比如BOM,DOM,属于宿主对象,由宿主实现提供和定义,可能不继承object