- 浏览: 44759 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示:js跳出循环:brea ...
js学习break、continue、return、witch等语句 -
FX夜归人:
var sm = new Ext.grid.CheckboxS ...
Ext.grid.CheckboxSelectionModel 只能选一行,不能全选和多选
1、Boolean类型
在这个例子中,我们使用false值创建了一个Boolean对象。然后,将这个对象与基本类型值true构成了逻辑与表达式。在布尔运算中,false && true等于false。可是,示例中的这行代码是对falseObject而不是对他的值(false)进行求值。而布尔表达式中的虽有对象都会被转换为true,因此falseObject对象在布尔表达式中代表的是true。结果,true && true当然就等于true了。
基本类型与引用类型的布尔值还有两个区别。首先,typeof操作符对基本类型返回"boolean",而对引用类型返回“object”。其次,由于Boolean对象是Boolean类型的实例,所以使用instanceof操作符测试Boolean对象会返回true,而测试基本类型的布尔值则返回false。如:
建议永远不要使用Boolean对象。
2、String类型
String类型的每个实例都有一个length属性,表示字符串中包含多个字符。
String类型提供了很多方法,用于辅助完成对ECMAScript中字符串的解析和操作。
1)字符方法
两个用于访问字符串中特定字符的方法是:charAt()和charCodeAt()。这两个方法都接受一个参数,即基于0的字符位置。其中charAt()方法以单字符串的形式返回给定位置的那个字符,而charCodeAt()返回的是给定位置的那个字符的编码。如:
ECMAScript5还定义了另一个访问个别字符的方法。在支持浏览器中,可以使用方括号加数字索引来访问字符串中的特定字符,如:
alert(stringValue[1]); //"e"
使用方括号表示法访问个别字符的语法得到了IE8及Firefox、Safari、Chrome和Opera所有版本支持。如果是在IE7及更早版本中使用这种语法,会返回undefined值。
2)字符串操作方法
第一个就是concat(),用于将一或多个字符串拼接起来,返回拼接得到的新字符串。如:
concat()方法可以接受任意多个参数,也就是说可以通过它拼接任意多个字符串。如:
虽然concat()是准们用来拼接字符串的方法,单实践中使用更多的还是加号操作符(+)。
ECMAScript还提供了三个基于子字符串创建新字符串的方法:slice()、substr()和substring()。这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个蚕食。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串到哪里结束。具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回字符串的个数如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。与concat()方法一样,slice()、substr()和substring()也不会修改字符串本身的值---它们只是返回一个基本类型的字符串值,对原始字符串没有任何影响。如:
在传递给这些方法的参数是负值的情况下,它们的行为就不尽相同。其中,slice()方法会将传入的负值与字符串的长度相加,substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。最后,substring()方法会把所有负值参数都转换为0。如:
在给slice()和substr()传递一个复制参数时,它们的行为相同。这是应为-3会被转换为8(11+(-3)=8),实际上相当于调用了slice(8)和substr(8)。但substring()方法则返回了全部字符串,因为它将-3转换成了0.
当第二个参数是负值时,这三个方法的行为各不相同。slice()方法会把第二个参数转换为7,这就相当于调用了slice(3,7),因此返回"lo w"。substring()方法会把第二个参数转换为0,使调用边成了substring(3,0),而用于这个方法会将较小的数最为开始位置,将较大的数作为结束位置,因此最终相当于调用了substring(0,3)。substr()也会将第二个参数转换为0,这也就意味着返回包含零个字符的字符串,也就是一个空字符串。
3)字符串位置方法
indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索字符串,而lastIndexOf()方法是从字符串的末尾向前搜索字符串。如:
这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索,即indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。如:
4)trim()方法
ECMAScript5为所有字符串定义了trim()方法。这个方法会创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。
5)字符串大小写转换方法
toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase(),其中,toLowerCase()和toUpperCase()是经典方法。
6)字符串的模式匹配方法
match()方法,在字符串上掉哟个这个方法,本质上与调用RegExp的exec()方法相同。match()方法只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。
本例中的match()方法返回了一个数组;如果是调用RegExp对象的exec()方法并传递本例中的字符串作为参数,那么也会得到与此相同的数组;数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获组匹配的字符串。
另一个用于查找模式的方法是search()。这个方法的唯一参数与match()方法的参数相同:由字符串或RegExp对象指定的一个正则表达式。search()方法返回字符串中第一个匹配项的索引;如果没有找到匹配项,则返回-1,而且,search()方法始终是从字符串开头向后查找模式。
为了简化替换字符串的操作,ECMAScript提供了replace()方法。这个方法接受两个参数:第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么指挥替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志。
最后一个与模式匹配有关的方法是split(),这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中。分隔符可以是字符串,也可以是一个RegExp对象(这个方法不会将字符串看成正则表达式)。split()方法可以接受可选的第二个参数,由于指定数组的大小,以便确保返回的数组不会超过既定大小。
var flaseObject = new Boolean(false); var result = falseObject && true; alert(result); //true var flaseValue = false; result = falseValue && true; alert(result); //false
在这个例子中,我们使用false值创建了一个Boolean对象。然后,将这个对象与基本类型值true构成了逻辑与表达式。在布尔运算中,false && true等于false。可是,示例中的这行代码是对falseObject而不是对他的值(false)进行求值。而布尔表达式中的虽有对象都会被转换为true,因此falseObject对象在布尔表达式中代表的是true。结果,true && true当然就等于true了。
基本类型与引用类型的布尔值还有两个区别。首先,typeof操作符对基本类型返回"boolean",而对引用类型返回“object”。其次,由于Boolean对象是Boolean类型的实例,所以使用instanceof操作符测试Boolean对象会返回true,而测试基本类型的布尔值则返回false。如:
alert(typeof falseObject); //object alert(typeof falseValue); //boolean alert(falseObject instanceof Boolean); //true alert(falseValue instance Boolean); //false
建议永远不要使用Boolean对象。
2、String类型
String类型的每个实例都有一个length属性,表示字符串中包含多个字符。
String类型提供了很多方法,用于辅助完成对ECMAScript中字符串的解析和操作。
1)字符方法
两个用于访问字符串中特定字符的方法是:charAt()和charCodeAt()。这两个方法都接受一个参数,即基于0的字符位置。其中charAt()方法以单字符串的形式返回给定位置的那个字符,而charCodeAt()返回的是给定位置的那个字符的编码。如:
var stringValue = "hello world"; alert(stringValue.charAt(1)); //"e" alert(stringValue.charCodeAt(1)); //输出“101”
ECMAScript5还定义了另一个访问个别字符的方法。在支持浏览器中,可以使用方括号加数字索引来访问字符串中的特定字符,如:
alert(stringValue[1]); //"e"
使用方括号表示法访问个别字符的语法得到了IE8及Firefox、Safari、Chrome和Opera所有版本支持。如果是在IE7及更早版本中使用这种语法,会返回undefined值。
2)字符串操作方法
第一个就是concat(),用于将一或多个字符串拼接起来,返回拼接得到的新字符串。如:
var stringValue = "hello"; var result = stringValue.concat("world"); alert(result); //"hello world" alert(stringValue); //"hello"
concat()方法可以接受任意多个参数,也就是说可以通过它拼接任意多个字符串。如:
result = stringValue.concat("world","!"); alert(result); //"hello world!"
虽然concat()是准们用来拼接字符串的方法,单实践中使用更多的还是加号操作符(+)。
ECMAScript还提供了三个基于子字符串创建新字符串的方法:slice()、substr()和substring()。这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个蚕食。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串到哪里结束。具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回字符串的个数如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。与concat()方法一样,slice()、substr()和substring()也不会修改字符串本身的值---它们只是返回一个基本类型的字符串值,对原始字符串没有任何影响。如:
var stringValue = "hello world"; alert(stirngValue.slice(3)); //"lo world" alert(stirngValue.substring(3)); //"lo world" alert(stirngValue.substr(3)); //"lo world" alert(stirngValue.slice(3,7)); //"lo w" alert(stirngValue.substring(3,7)); //"lo w" alert(stirngValue.substr(3,7)); //"lo worl"
在传递给这些方法的参数是负值的情况下,它们的行为就不尽相同。其中,slice()方法会将传入的负值与字符串的长度相加,substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。最后,substring()方法会把所有负值参数都转换为0。如:
var stringValue = "hello world"; alert(stirngValue.slice(-3)); //"rld" alert(stirngValue.substring(-3)); //"hello world" alert(stirngValue.substr(-3)); //"rld" alert(stirngValue.slice(3,-4)); //"lo w" alert(stirngValue.substring(3,-4)); //"hel" alert(stirngValue.substr(3,-4)); //""(空字符串)
在给slice()和substr()传递一个复制参数时,它们的行为相同。这是应为-3会被转换为8(11+(-3)=8),实际上相当于调用了slice(8)和substr(8)。但substring()方法则返回了全部字符串,因为它将-3转换成了0.
当第二个参数是负值时,这三个方法的行为各不相同。slice()方法会把第二个参数转换为7,这就相当于调用了slice(3,7),因此返回"lo w"。substring()方法会把第二个参数转换为0,使调用边成了substring(3,0),而用于这个方法会将较小的数最为开始位置,将较大的数作为结束位置,因此最终相当于调用了substring(0,3)。substr()也会将第二个参数转换为0,这也就意味着返回包含零个字符的字符串,也就是一个空字符串。
3)字符串位置方法
indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索字符串,而lastIndexOf()方法是从字符串的末尾向前搜索字符串。如:
var stringValue = "hello world"; alert(stringValue.indexOf("o")); //4 alert(stringValue.lastIndexOf("o")); //7
这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索,即indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。如:
var stringValue = "hello world"; alert(stringValue.indexOf("o",6)); //7 alert(stringValue.lastIndexOf("o",6)); //4
4)trim()方法
ECMAScript5为所有字符串定义了trim()方法。这个方法会创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。
5)字符串大小写转换方法
toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase(),其中,toLowerCase()和toUpperCase()是经典方法。
6)字符串的模式匹配方法
match()方法,在字符串上掉哟个这个方法,本质上与调用RegExp的exec()方法相同。match()方法只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。
var text = "cat,bat,sat,fat"; var pattern = /.at/; //与pattern.exec(text)相同 var matches = text.match(pattern); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern.lastIdex); //0
本例中的match()方法返回了一个数组;如果是调用RegExp对象的exec()方法并传递本例中的字符串作为参数,那么也会得到与此相同的数组;数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获组匹配的字符串。
另一个用于查找模式的方法是search()。这个方法的唯一参数与match()方法的参数相同:由字符串或RegExp对象指定的一个正则表达式。search()方法返回字符串中第一个匹配项的索引;如果没有找到匹配项,则返回-1,而且,search()方法始终是从字符串开头向后查找模式。
为了简化替换字符串的操作,ECMAScript提供了replace()方法。这个方法接受两个参数:第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么指挥替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志。
最后一个与模式匹配有关的方法是split(),这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中。分隔符可以是字符串,也可以是一个RegExp对象(这个方法不会将字符串看成正则表达式)。split()方法可以接受可选的第二个参数,由于指定数组的大小,以便确保返回的数组不会超过既定大小。
发表评论
-
DOM扩展
2014-02-24 15:06 718对DOM的两个主要的扩展 ... -
COM对象
2014-02-23 15:51 4431、COM COM:The Component Object ... -
客户端检测
2014-02-20 14:12 3235客户端检测是javascript开发中最具争议的一个话题。由于 ... -
javascript基础知识(二)
2014-02-17 11:30 0函数表达式 定义函数的方式有两种,一种是函数声明,另一种就是 ... -
鼠标定位
2013-11-25 15:10 572当我们单击或移动鼠标时,一般都需要获得鼠标位置,其位置可分为C ... -
js 添加事件 attachEvent 和 addEventListener 的用法
2013-11-25 10:42 695一般我们在JS中添加事件,是这样子的 1 obj.onclic ... -
JavaScript数组
2013-11-21 11:05 491JavaScript数组是有序集合,它包含堆栈、队列等数 ... -
再论call和apply
2013-11-11 15:34 438因为继续研究Ajax Framework的原因,更多的接触了c ... -
全面理解javascript的caller,callee,call,apply概念(修改版)
2013-11-11 15:31 861在提到上述的概念之前 ... -
IE下使用excanvas.js的注意事项
2013-10-16 09:53 1273下载网址:http://code.google.com/p/e ... -
JS判断浏览器类型方法
2013-10-16 09:42 2175方法一: 2009-05-29 23:01 ... -
网站如何做到 jQuery-free?
2013-06-14 14:45 891本文转载自ITeye新闻月 ... -
js学习break、continue、return、witch等语句
2013-04-25 17:23 20441、break语句 break语句会使运行的程序立刻退出包含在 ... -
js == 与 === 的区别
2013-04-18 17:22 671”==”与”===”是不同 ... -
javascript eval和JSON之间的联系
2012-12-27 13:13 763javascript eval和JSON之间的联系 如果您想 ...
相关推荐
以下是对JavaScript基础知识的总结,主要关注在网页中使用的弹出对话框、函数调用以及带有参数的函数。 1) Alert Box `alert()` 函数用于显示一个包含警告信息的单行对话框,用户只能点击“确定”按钮关闭它。在...
1. JavaScript 的基础知识 在学习 JavaScript 之前,你需要了解 HTML 和 XHTML 的基础。JavaScript 被设计用来向 HTML 页面添加交互行为,通过在 HTML 中插入 JavaScript 代码,可以实现页面元素的动态操作和用户...
总的来说,这个压缩包提供了一个全面的JavaScript基础知识教程,涵盖了数据类型、Object、内置对象和变量等核心概念,对于初学者或者需要巩固基础的开发者来说,是一份非常有价值的参考资料。通过学习这些内容,可以...
基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程基础知识基于Javascript编程...
本文将基于“JavaScript语言基础知识点总结十张图”这一主题,深入探讨JavaScript的基础概念、语法特性以及核心知识点。 1. **变量与数据类型** JavaScript有七种数据类型:Undefined、Null、Boolean、Number、...
这份“JavaScript基础知识点汇总”涵盖了从基础到进阶的多个方面,帮助开发者系统地理解和掌握这一语言。以下是详细的JavaScript知识点解析: 1. **变量**:在JavaScript中,我们可以使用`var`, `let`, 或 `const` ...
在学习JavaScript的过程中,持续实践、不断阅读优秀的代码、及时复习和巩固知识,是成为熟练JavaScript开发者的必经之路。随着技能的提升,你将能够利用JavaScript创造出更多富有创意和功能强大的Web应用。
javascript 基础知识
javascript 基础知识
javascript 基础知识
javascript 基础知识
javascript 基础知识
javascript 基础知识
JavaScript基础知识点总结 JavaScript是一种高级的、动态的、基于对象的客户端脚本语言。它是在网页上执行的脚本语言,能实现网页的交互功能。下面是该资源中的重要知识点总结: 一、 JavaScript 基本概念 * ...
本文将详细介绍JavaScript的基础知识,包括它的编程基础、工作原理、在HTML中的使用方法,以及数据类型、变量、常量、运算符、表达式、控制流程和数组等核心概念。 首先,JavaScript最初由Netscape公司开发,是一种...
javascript 基础知识 5
javascript 基础知识 4
javascript 基础知识 3
javascript 基础知识 2
将Javascript的基础知识浓缩到一张纸上