kl800.com省心范文网

Js基础知识

Js 基础知识.txt 永远像孩子一样好奇,像年轻人一样改变,像中年人一样耐心,像老年人一 样睿智。我的腰闪了,惹祸的不是青春,而是压力。。。 。。。当女人不再痴缠,不再耍赖,不再 喜怒无常,也就不再爱了。JavaScript 提供了在字符串中查找子串的函数 indexOf()、 lastIndexOf()、search(),还提供了字符串的替换函数 replace(),而这些函数没有在数组 对象 Array 中实现。 为了让 Array 也支持以上方法,我们可以对 Array 对象原型进行修改,增加了相应函数。让 这些函数和 String 对象的函数同名且语法相近,以方便我们使用。下面做一些简单介绍,读 者也可根据需要自己定义其它方法。 //判断一个字符串是否包含另一个字符串,substr:子字符串,start:开始位置 Array.prototype.indexOf=function(substr,start){ var ta,rt,d='\0'; if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;} var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d); if(t==-1)return -1;rt+=str.slice(0,t).replace(/[^\0]/g,'').length; return rt; } //该方法自右向左查找,返回 substr 在 strObj 中最后出现的位置,如果没有找到,返回-1。 Array.prototype.lastIndexOf=function(substr,start){ var ta,rt,d='\0'; if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;} ta=ta.reverse();var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d); if(t==-1)return -1;rt+=str.slice(t).replace(/[^\0]/g,'').length-2; return rt; } //该方法替换字符串中的 reg 为 rpby,比较常用。 Array.prototype.replace=function(reg,rpby){ var ta=this.slice(0),d='\0'; var str=ta.join(d);str=str.replace(reg,rpby); return str.split(d); } //寻找字符串中的指定子串 Array.prototype.search=function(reg){ var ta=this.slice(0),d='\0',str=d+ta.join(d)+d,regstr=reg.toString(); reg=new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g,'\\0$1\\0'),regstr.slice(regstr.lastInd exOf('/')+1)); t=str.search(reg);if(t==-1)return -1;return str.slice(0,t).replace(/[^\0]/g,'').length; } 以上四种方法均实现了对数组中每个元素都进行查找或替换,这样大家就不用做个循环浪费 时间了。

二、Js 对字符串的操作。 1、字符串的创建 创建一个字符串有几种方法。最简单的是用引号将一组字符包含起来,可以将其赋值给一个 字符串变量。 var myStr = "Hello, String!"; 我们在上面脚本创建了字符串,但本质上,它们并不是真正的字符串对象,准确地说,它们 是 字 符 串 类 型 的 值 。 要 创 建 一 个 字 符 串 对 象 , 可 使 用 如 下 语 句 : var strObj = new String("Hello, String!"); 使用 typeof 运算符查看会发现,上面的 myStr 类型为 string,而 strObj 类型为 object。 如果想知道字符串的长度,使用其 length 属性:string.length。 得到字符串的指定位置的字符使用方法:string.charAt(index);

2、字符串的拼接 a).非常简单,就用一个"+"将两个字符串"相加": var longString = "One piece " + "plus one more piece."; b).要将多个字符串累积为一个字符串,还可以使用"+="操作符: var result = ""; result += "My name is Anders" result += " and my age is 25"; c).要在字符串中添加换行符,需要使用转义字符"\n": var confirmString = "You did not enter a response to the last " + "question.\n\nSubmit form anyway?"; var confirmValue = confirm(confirmString); 但这种方法只能用在像警告、 确认对话框之类的情况下, 如果将这段文本作为 HTML 内容呈现, 就无效了,此时用"<br>"代替它: var htmlString = "First line of string.<br>Second line of string."; document.write(htmlString); String 对象还提供了方法 concat(),它完成与"+"相同的功能: string.concat(value1, value2, ...) 不过 concat()方法显然不如"+"来得直观简洁。 3、访问字符串的子串 使用 substring()或 slice()方法(NN4+, IE4+),下面说明它们的具体用法。 substring()的原型为: string.substring(from, to) 第一个参数 from 指定了子字符串在原字符串中的起始位置(基于 0 的索引);第二个参数 to 是可选的,它指定了子字符串在原字符串的结束位置(基于 0 的索引),一般情况下,它应比 from 大,如果它被省略,那么子字符串将一直到原字符串的结尾处。 如果参数 from 不小心比参数 to 大了会怎样?JavaScript 会自动调解子字符串的起止位置,

也就是说, substring()总是从两个参数中较小的那个开始, 到较大的那个结束。 不过要注意, 它包含起始位置的那个字符,但不包含结束位置的那个字符。 var fullString = "Every dog has his day."; var section = fullString.substring(0, 4); // section is "Ever". slice()的原型为: string.slice(start, end) 参数 start 表示子串的起始位置,如果为负数,那么可以理解为倒数第几个开始,例如-3 表 示从倒数第三个开始;参数 end 表示结束位置,与 start 一样,它也可以为负数,其含义也 表示到倒数第几个结束。slice()的参数可以为负数,所以要比 substring()更加灵活,但没 那么宽容了,如果 start 比 end 要大,它将返回一个空字符串(示例略)。 还有一个方法是 substr(),其原型为: string.substr(start, length) 从原型可以看出它的参数的含义,start 表示起始位置,length 则表示子字符串的长度。 JavaScript 标准不提倡使用该方法。 4、字符串的大小写转换 使用 toLowerCase()和 toUpperCase()方法: var city = "ShanGHai"; city = city.toLowerCase(); // city is "shanghai" now. 5、判断两个字符串是否相等 先将用户的输入值全部转换为大写(或小写) ,然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. } JavaScript 有两种相等运算符。一种是完全向后兼容的,标准的"==",如果两个操作数类型 不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA = "i love you!"; var strB = new String("i love you!"); 这两个变量含有相同的字符序列,但数据类型却不同,前者为 string,后者为 object,在使 用"=="操作符时,JavaScript 会尝试各种求值,以检测两者是否会在某种情况下相等。所以 下面的表达式结果为 true: strA == strB。 第二种操作符是"严格"的"===",它在求值时不会这么宽容,不会进行类型转换。所以表达式 strA === strB 的值为 false,虽然两个变量持有的值相同。 有时代码的逻辑要求你判断两个值是否不相等,这里也有两个选择:"!="和严格的"!==",它 们的关系就类似于"=="和"==="。 讨论: "=="和"!="在求值时会尽可能地寻找值的匹配性,但你可能还是想在比较前进行显式的类型 转换,以"帮助"它们完成工作。比如,如果想判断一个用户的输入值(字符串)是否等于一 个数字,你可以让"=="帮你完成类型转换: if(document.form1.txtAge.value == someNumericVar) { ... } 也可以提前转换: if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... } 如果你比较习惯于强类型的编程语言(比如 C#,Java 等), 那么这里你可以延续你的习惯(类型 转换),这样也会增强程序的可读性。

有一种情况需要注意,就是计算机的区域设置。如果用"<"和">"来比较字符串,那么 JavaScript 把它们作为 Unicode 来比较, 但显然, 人们在浏览网页时不会把文本当作 Unicode 来阅读:) 比如在西班牙语中,按照传统的排序,"ch"将作为一个字符排在"c"和"d"之间。 localeCompare()提供了一种方式,可以帮助你使用默认区域设置下的字符排序规则。 var strings; // 要排序的字符串数组,假设已经得到初始化 strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用 sort()方法进行 排序 6、字符串的查找 使用 string 的 indexOf()方法: strObj.indexOf(subString[, startIndex]) strObj 为要进行判断的字符串,subString 为要在 strObj 查找的子字符串,startIndex 是 可选的,表示查找的开始位置(基于 0 的索引),如果 startIndex 省略,则从 strObj 开始处 查找,如果 startIndex 小于 0,则从 0 开始,如果 startIndex 大于最大索引,则从最大索 引处开始。 indexOf()返回 strObj 中 subString 的开始位置,如果没有找到,则返回-1。在脚本中,可 以这么使用: if(largeString.indexOf(shortString) != -1) { // 如果包含,进行相应处理; } 也许一个字符串会包含另一字符串不止一次,这时第二个参数 startIndex 也许会派上用场, 下面这个函数演示如何求得一个字符串包含另外一个字符串的次数: function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do { offset = mainStr.indexOf(subStr, offset); if(offset != -1) { count++; offset += subStr.length; } }while(offset != -1) return count; } String 对象有一个与 indexOf()对应的方法,lastIndexOf(): strObj.lastIndexOf(substring[, startindex]) strObj 为要进行判断的字符串,subString 为要在 strObj 查找的子字符串,startIndex 是 可选的,表示查找的开始位置(基于 0 的索引),如果 startIndex 省略,则从 strObj 末尾处 查找,如果 startIndex 小于 0,则从 0 开始,如果 startIndex 大于最大索引,则从最大索

引处开始。该方法自右向左查找,返回 subString 在 strObj 中最后出现的位置,如果没有找 到,返回-1。 7、在 Unicode 值和字符串中的字符间转换 问题: 获得一个字符的 Unicode 编码值,反之亦然。 解决方案: 要获得字符的 Unicode 编码,可以使用 string.charCodeAt(index)方法,其定义为: strObj.charCodeAt(index) index 为指定字符在 strObj 对象中的位置(基于 0 的索引) ,返回值为 0 与 65535 之间的 16 位整数。例如: var strObj = "ABCDEFG"; var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67 如果 index 指定的索引处没有字符,则返回值为 NaN。 要将 Unicode 编码转换为一个字符,使用 String.fromCharCode()方法,注意它是 String 对 象的一个"静态方法",也就是说在使用前不需要创建字符串实例: String.fromCharCode(c1, c2, ...) 它接受 0 个或多个整数,返回一个字符串,该字符串包含了各参数指定的字符,例如: var str = String.fromCharCode(72, 101, 108, 108, 111); // str == "Hello"

三、Js 对数组的操作 1、数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数 组并赋值 要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的, 也就是说即使指定了长度为 5,仍然可以将元素存储在规定长度以外的,注意:这时长度会 随之改变。 2、数组的元素的访问 var testGetArrValue=arrayObj[1]; //获取数组的元素值 arrayObj[1]= "这是新值"; //给数组元素赋予新的值 3、数组元素的添加

arrayObj.push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结 尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数 组开始,数组中的元素自动后移,返回数组新长度 arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新 元素插入到数组的指定位置,插入位置的元素自动后移,返回""。 4、数组元素的删除 arrayObj.pop(); //移除最后一个元素并返回该元素值 arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移 arrayObj.splice(deletePos,deleteCount); //删除从指定位置 deletePos 开始的指定数量 deleteCount 的元素,数组形式返回所移除的元素 5、数组的截取和合并 arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应 的元素,如果省略 end 将复制 start 之后的所有元素 arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串, 或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组 6、数组的拷贝 arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向 arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向 7、数组元素的排序 arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前) ,返回数组地址 arrayObj.sort(); //对数组元素排序,返回数组地址 8、数组元素的字符串化 arrayObj.join(separator); //返回字符串, 这个字符串将数组的每一个元素值连接在一起, 中间用 separator 隔开。

toLocaleString 、toString 、valueOf:可以看作是 join 的特殊用法,不常用

9、length 属性 Length 属性表示数组的长度,即其中元素的个数。因为数组的索引总是由 0 开始,所以一个 数组的上下限分别是: 和 length-1。 0 和其他大多数语言不同的是, JavaScript 数组的 length 属性是可变的,这一点需要特别注意。当 length 属性被设置得更大时,整个数组的状态事实 上不会发生变化,仅仅是 length 属性变大;当 length 属性被设置得比原来小时,则原先数 组中索引大于或等于 length 的元素的值全部被丢失。下面是演示改变 length 属性的例子: var arr=[12,23,5,3,25,98,76,54,56,76]; //定义了一个包含 10 个数字的数组 alert(arr.length); //显示数组的长度 10 arr.length=12; //增大数组的长度 alert(arr.length); //显示数组的长度已经变为 12

alert(arr[8]); //显示第 9 个元素的值,为 56 arr.length=5; //将数组的长度减少到 5,索引等于或超过 5 的元素被丢弃 alert(arr[8]); //显示第 9 个元素已经变为"undefined" arr.length=10; //将数组长度恢复为 10 alert(arr[8]); //虽然长度被恢复为 10,但第 9 个元素却无法收回,显示"undefined" 由上面的代码我们可以清楚的看到 length 属性的性质。 length 对象不仅可以显式的设置, 但 它也有可能被隐式修改。JavaScript 中可以使用一个未声明过的变量,同样,也可以使用一 个未定义的数组元素(指索引超过或等于 length 的元素) ,这时,length 属性的值将被设置 为所使用元素索引的值加 1。例如下面的代码: var arr=[12,23,5,3,25,98,76,54,56,76]; alert(arr.length); arr[15]=34;

alert(arr.length); 代码中同样是先定义了一个包含 10 个数字的数组,通过 alert 语句可以看出其长度为 10。 随后使用了索引为 15 的元素,将其赋值为 15,即 arr[15]=34,这时再用 alert 语句输出数 组的长度,得到的是 16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令 人惊讶的特性。事实上,使用 new Array()形式创建的数组,其初始长度就是为 0,正是对其 中未定义元素的操作,才使数组的长度发生变化。 由上面的介绍可以看到,length 属性是如此的神奇,利用它可以方便的增加或者减少数组的 容量。因此对 length 属性的深入了解,有助于在开发过程中灵活运用。 10、prototype 属性 返回对象类型原型的引用。prototype 属性是 object 共有的。 objectName.prototype objectName 参数是 object 对象的名称。 说明:用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象 原型的操作。 对于数组对象,以以下例子说明 prototype 属性的用途。 给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Array.prototype, 并使用它。 function array_max( ) { var i, max = this[0]; for (i = 1; i < this.length; i++) { if (max < this[i]) max = this[i]; } return max;

} Array.prototype.max = array_max; var x = new Array(1, 2, 3, 4, 5, 6); var y = x.max( ); 该代码执行后,y 保存数组 x 中的最大值,或说 6


js基础知识介绍.doc

js基础知识介绍 - JS 基础新知识简介 1. javascript 脚本语言

js基础知识.doc

js基础知识 - Js1k:用 1k 的代码做出炫目的效果。代码扩写 犀牛书 微

Js基础知识.pdf

Js基础知识 - 表单 对象 描述 对象 Button HTML 表单中的一个按

JavaScript基础知识.pdf

JavaScript基础知识 - JavaScript 基础知识 2017-11

JavaScript基础知识总结(一).doc

JavaScript基础知识总结(一) - 本文由我司收集整编,推荐下载,如有疑问,请与我司联系 JavaScript 基础知识总结(一) 2016/09/05 266 论认识。 那么,什么是...

JavaScript基础知识点归纳(推荐).doc

JavaScript基础知识点归纳(推荐) - JavaScript 基础知识点归纳(推荐) 定义在函数外的变量一定是全局变量;定义在函数内的 变量,如果声明了 var,那该变量就是局部...

Javascript基础知识总结(代码篇).doc

Javascript基础知识总结(代码篇) - 本文对Javascript基础知识进行总结,并给出相应代码,加深理解,是你初Javascript殿堂时不可或缺的参考材料。

javascript基础知识重点集锦.doc

javascript基础知识重点集锦 - 文档均来自网络,如有侵权请联系我删除文档... Js 基础知识集锦(一)主要知识点:js 数组,数字函数,字符串函数,表单验证,hashMap,堆栈,...

学习javascript必须掌握的基础知识.doc

学习javascript必须掌握的基础知识 - 好多人想要学习前端……自学或者培训那么我们在学习过程中到底需要掌握那些基础知识呢! 下面分类了 JS 中必备的知识也是必须要...

01 JS基础知识.ppt

01 JS基础知识 - JavaScript基础知识 请做好准备 1.1 为什么

JAVASCRIPT基础知识1.pdf

JAVASCRIPT基础知识1 - 东北石油大学计算机与信息技术学院 李勇勇 D

javascript基础知识测试题目.txt

javascript基础知识测试题目 - 最基本的javascript测试题... javascript基础知识测试题目_计算机软件及应用_IT/...现有字符串“a,f,g,k,x”,请编写JS代码片段,...

实验一 HTML+CSS+JS基础知识(一).doc

实验一 HTML+CSS+JS基础知识(一) - 电子信息学院 实验报告书 课程

js基础到精通全面教程--JS教程.doc

js 基础到精通全面教程--JS 教程 适合阅读范围:对 JavaScript 一无所知~离精通只差一步之遥的人 基础知识:HTML JavaScript 就这么回事 1:基础知识 1 创建脚本...

html,css,javascript基础知识.doc

html,css,javascript基础知识 - 1.web 概述 1)web

JS知识要点汇编.doc

JS知识要点汇编 - js基础知识要点汇编,如循环语句,dom等,其中都有详细解释。... JS知识要点汇编_计算机软件及应用_IT/计算机_专业资料。js基础知识要点汇编,如循环...

Js基础知识.txt

Js基础知识 - JavaScript 提供了在字符串中查找子串的函数 inde

第六章 JS+DOM基础知识_图文.ppt

第六章 JS+DOM基础知识 - 文档均来自网络,如有侵权请联系我删除文档... 第六章 JS+DOM基础知识_计算机软件及应用_IT/计算机_专业资料。文档均来自网络,如有侵权...

js基础知识介绍.doc

js基础知识介绍_计算机软件及应用_IT/计算机_专业资料。Js 参考文档 JS

JavaScript基础知识.doc

JavaScript基础知识_计算机软件及应用_IT/计算机_专业资料。关于Java方面的一个...filename.js””> 5 注释脚本 引用内容程序代码 // This is a comment document...