JavaScript学习笔记_第1页
JavaScript学习笔记_第2页
JavaScript学习笔记_第3页
JavaScript学习笔记_第4页
JavaScript学习笔记_第5页
免费预览已结束,剩余61页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaScriptJavaScript 学习笔记学习笔记 1 第一章第一章 JavaScriptJavaScript 基础基础 1 如何实现 JavaScript 4 1 如何把 JavaScript 代码放到 HTML 页面里 4 使用标签 直接在 HTML 代码里加入 JavaScript 代码 4 使用调用外部的 JavaScript js 文件 4 如何与老浏览器打交道 4 2 把 JavaScript 代码放到 HTML 页面不同的位置 4 把 JavaScript 代码放到 HTML部分 4 把 JavaScript 代码放到 HTML部分 4 示例代码 4 2 JavaScript 语句与注释 5 1 JavaScript 语句结束符 5 2 JavaScript 代码块 5 3 JavaScript 注释 5 4 JavaScript 变量 5 变量命名规则 5 申明或创建变量 5 重新申明变量 5 3 JavaScript 运算符 5 1 基本运算符 5 2 位运算符 非运算 使用调用外部的 JavaScript js 文件 JavaScript html 文件 JavaScript js 文件 document write 外部的JavaScript文件 alert 消息 如何与老浏览器打交道 那些不支持 JavaScript 的浏览器会把脚本作为页面的内容来显示 为了防止这种情况发生 我们可 以使用这样的 HTML 注释标签 JavaScript注释 注释行末尾的两个正斜杠是 JavaScript 的注释符号 它会阻止 JavaScript 编译器对这一行的编译 2 把 JavaScript 代码放到 HTML 页面不同的位置 页面中的脚本会在页面载入浏览器后立即执行 我们并不总希望这样 有时 我们希望当页面载入 时执行脚本 而另外的时候 我们则希望当用户触发事件时才执行脚本 把 JavaScript 代码放到 HTML部分 把页面载入时就需要执行的 JavaScript 代码放到标签之间 这是一种规范 建议这样 做 把 JavaScript 代码放到 HTML部分 把当脚本被调用时 或当事件被触发时才会执行的 JavaScript 代码放到标签之中 这 样就可以确保在调用 JavaScript 之前就载入了它 这是一种规范 建议这样做 示例代码 functionfunction message document write head之间的JavaScript JavaScriptJavaScript 学习笔记学习笔记 5 document write body之间的JavaScript head 2 2 JavaScriptJavaScript 语句与注释语句与注释 1 JavaScript 语句结束符 通常要在每行语句结尾加上一个分号 但是根据 JavaScript 标准语句结尾的分号是可选的 浏 览器会把行末作为语句的结尾 document write 语句1 document write 语句2 2 JavaScript 代码块 JavaScript 可以分批的组合起来 使用 把多条语句括起来组成代码块 代码块的作用是一 并的执行语句序列 document write This is a header document write This is a paragraph document write This is another paragraph 3 JavaScript 注释 document write JavaScript注释 双斜杠表示行注释 第一种 第二种 块注释 4 JavaScript 变量 变量命名规则 JavaScript 变量对大小写敏感 变量必须是以字母或下划线开头 申明或创建变量 varvar i 123 使用var关键字申明变量 varvar s 李志伟 temp 直接赋值使用变量 如果您所赋值的变量还未进行过声明 该变量会自动声明 document write i s temp 重新申明变量 varvar i 123 使用var关键字申明变量 varvar i 在重新声明该变量后 变量的值不会被重置或清除 document write i的值是 i i的值还是123 3 3 JavaScriptJavaScript 运算符运算符 1 基本运算符 基本运算符有 类似 的运算符 其使用方式与编程语言 Java C C 等 基本一样 下面主要演示 运算符 i 5 5 document write i的值是 i 10 i 5 5 document write i的值是 i 55 i 5 5 document write i的值是 i 55 JavaScriptJavaScript 学习笔记学习笔记 6 2 位运算符 非运算 25 等于 00000000000000000000000000011001 varvar iNum2 iNum1 转换为11111111111111111111111111100110 document write iNum2 输出 26 varvar iResult 25 25 0000 0000 0000 0000 0000 0000 0001 1001 3 0000 0000 0000 0000 0000 0000 0000 0011 AND 0000 0000 0000 0000 0000 0000 0000 0001 document write iResult 输出 1 varvar iResult 25 3 25 0000 0000 0000 0000 0000 0000 0001 1001 3 0000 0000 0000 0000 0000 0000 0000 0011 OR 0000 0000 0000 0000 0000 0000 0001 1011 document write iResult 输出 27 varvar iResult 25 3 25 0000 0000 0000 0000 0000 0000 0001 1001 3 0000 0000 0000 0000 0000 0000 0000 0011 XOR 0000 0000 0000 0000 0000 0000 0001 1010 document write iResult 输出 26 3 Boolean 运算 求反运算 document write bool 输出false varvar bool a b 字母 a的字符代码是 97 字母b的字符代码是 98 document write bool 输出ture varvar bool 98 97 字符串 98 将被转换成数字 98 document write bool 输出false varvar bool a 9999 这样比较总是返回false 不管是 document write bool 输出false 5 等性运算符 下表是一些特殊情况的值 表达式表达式值值表达式表达式值值表达式表达式值值 null undefinedtruetrue NaN NaNfalsefalse5 NaNfalsefalse NaN NaNfalsefalseNaN NaNtruetruefalse 0truetrue true 1truetruetrue 2falsefalseundefined 0falsefalse null 0falefale 5 5truetrue 全等号由三个等号表示 只有在无需类型转换运算数就相等的情况下 才返回 true varvar i 66 JavaScriptJavaScript 学习笔记学习笔记 7 varvar j 66 document write i j 输出 true document write i j 输出 false document write i j 输出 fale document write i j 输出 true 6 条件运算符 variable boolean expression true value false value 条件运算符与编程语言的使用方式 基本一致 varvar num1 25 num2 565 varvar max num1 num2 num1 num2 取最大值 document write max 输出 true 7 其他运算符 赋值运算符 每种主要的算术运算以及其他几个运算都有复合赋值运算符 乘法 赋值 除法 赋值 取模 赋值 加法 赋值 减法 赋值 左移 赋值 无符号右移 赋值 逗号运算符 用逗号运算符可以在一条语句中执行多个运算 例如 var iNum1 1 iNum 2 iNum3 3 typeof 运算符 typeof 运算符有一个参数 即要检查的变量或值 对变量或值调用 typeof 运算符将返回下列值之 一 Undefined 如果变量是 Undefined 类型的 Boolean 如果变量是 Boolean 类型的 Number 如果 变量是 Number 类型的 String 如果变量是 String 类型的 Object 如果变量是一种引用类型或 Null 类型的 varvar temp1 李志伟 varvar temp2 Undefined类型只有一个值 即 undefined 当声明的变量未初始化时 该变量 的默认值是 undefined document write typeoftypeof temp1 string document write typeoftypeof temp2 undefined document write typeoftypeof 86 number document write typeoftypeof nullnull object Undefined Undefined 类型只有一个值 即 undefined 当声明的变量未初始化时 该变量的默认 值是 undefined null 另一种只有一个值的类型是 Null 它只有一个专用值 null 即它的字面量 值 undefined 实际上是从值 null 派生来的 因此 ECMAScript 把它们定义为相等的 alert null undefined 输出 true delete 运算符 delete 运算符删除对以前定义的对象属性或方法的引用 例如 varvar o newnew Object o name 李志伟 document write o name 输出 David deletedelete o name document write o name 输出 undefined instanceof 运算符 能用 instanceof 运算符检查给定变量指向的对象的类型 例如 JavaScriptJavaScript 学习笔记学习笔记 8 functionfunction Car 使用原型方式 或混合的构造函数 原型方式 申明instanceof才有用 varvar car newnew Car document write car instanceofinstanceof Car 输出 true 使用 instanceof 运算符会出现很多意想不到的结果 建议不用 使用原型方式 或混合的构造函数 原型方式 申明 instanceof 才有用 4 4 withwith 语句语句 1 语法及作用 作用 with 语句用于设置代码在特定对象中的作用域 语法 with 对象 对象使用范围 2 示例 varvar s 李志伟 withwith s document write toString 输出 李志伟 等效于s toString 提示 with 语句是运行缓慢的代码块 尤其是在已设置了属性值时 大多数情况下 如果可能 最 好避免使用它 5 5 分支语句分支语句 1 if else 语句 varvar i 50 ifif i 0 document write i等于0 elseelse document write i不等于0 2 switch 语句 varvar i 2 switchswitch i casecase 1 document write i等于1 breakbreak casecase 2 document write i等于2 breakbreak casecase 3 document write i等于3 breakbreak defaultdefault document write 错误 6 6 消息框消息框 1 警告框 语法 alert 文本 alert 我是警告框 JavaScriptJavaScript 学习笔记学习笔记 9 2 确认框 语法 confirm 文本 varvar r confirm 点击确认 确认对话框 ifif r truetrue alert 你点击了确认 elseelse alert 你点击了取消 3 提示框 语法 prompt 文本 默认值 varvar name prompt 请输入您的名字 李志伟 ifif name nullnull 7 7 函数函数 一般定义到一般定义到标签之间标签之间 1 定义函数 function 函数名 var1 var2 varX 代码 return 在函数内申明的变量 只能在函数中访问 其生存期就在整个函数中 在函数外申明的变量 在整 个 HTML 页面内都有效 生存期在整个 HTML 页面 2 关于函数的 arguments 对象 在函数代码中 使用特殊对象 arguments 开发者无需明确指出参数名 就能访问它们 例如 在函数 sayHi 中 第一个参数是 message 用 arguments 0 也可以访问这个值 即第一个参数的值 第一个参数位于位置 0 第二个参数位于位置 1 依此类推 functionfunction sayHi message 注意直接写参数名 不要写var申明 document write message document write arguments 0 使用arguments对象获得参数 sayHi 李志伟 调用函数 使用 arguments length 检测参数个数 functionfunction num document write 参数个数 arguments length 获取参数个数 JavaScriptJavaScript 学习笔记学习笔记 10 num 调用函数 num 1 2 num 1 2 3 5 李志伟 模拟函数重载 functionfunction num varvar i arguments length switchswitch i casecase 1 document write 参数 arguments 0 breakbreak casecase 2 document write 相加 arguments 0 arguments 1 breakbreak defaultdefault document write 参数个数出错 breakbreak num 李志伟 调用函数 num 55 2 num 1 2 3 5 李志伟 3 Function 对象 类 Function 对象的使用 函数实际上是功能完整的对象 Function 类可以表示开发者定义的任何函数 用 Function 类直接 创建函数的语法如下 var function name new function arg1 arg2 argN function body varvar sayHi newnew Function name document write name 你好 sayHi 李志伟 调用函数 JavaScriptJavaScript 学习笔记学习笔记 11 尽管可以使用 Function 构造函数创建函数 但最好不要使用它 因为用它定义函数比用传统方式 要慢得多 不过 所有函数都应看作 Function 类的实例 使用 Function 类的 length 属性 functionfunction fun1 functionfunction fun2 a1 a2 functionfunction fun3 a1 a2 a3 a4 a5 a6 a7 document write fun1 length fun2 length fun3 length 使用 Function 的 length 属性可以得到函数的形参个数 使用 Function 类的 valueOf 方法和 toString 方法 functionfunction fun document write 李志伟 document write fun toString 输出函数的源代码 这两个方法返回的都是函数的源代码 在调试时尤其有用 4 闭包 闭包就是 函数可以使用函数之外定义的变量 varvar iBaseNum 100 functionfunction fun iNum1 iNum2 functionfunction doAdd returnreturn iNum1 iNum2 iBaseNum 使用函数外的变量 returnreturn doAdd document write fun 10 30 JavaScriptJavaScript 学习笔记学习笔记 12 就像使用任何高级函数一样 使用闭包要小心 因为它们可能会变得非常复杂 8 8 循环语句循环语句 1 for 循环 for 循环的使用格式 格式 1 for 变量 开始值 变量 结束值 变量 变量 步进值 需执行的代码 格式 2 for property in expression 需执行的代码 例子 forfor sProp inin window document write sProp 显示 window 对象的所有属性 varvar array newnew Array 1 2 3 4 5 6 7 8 9 0 3 forfor i inin array document write array i 显示数组内容 2 while 循环 While 循环的使用格式 格式 1 while expression 需执行的代码 格式 2 do 需执行的代码 while 条件 例子 varvar i 10 dodo document write i i whilewhile i 0 3 使用 break 和 continue 退出循环 break 命令可以终止循环的运行 然后继续执行循环之后的代码 如果循环之后有代码的话 continue 命令会终止当前的循环 然后从下一个值继续运行 9 9 JavaScriptJavaScript 事件事件 1 事件句柄 FF Firefox N Netscape IE Internet Explorer 属性属性当以下情况发生时 出现此事件当以下情况发生时 出现此事件FFFFN NIEIE JavaScriptJavaScript 学习笔记学习笔记 13 onabort图像加载被中断134 onblur元素失去焦点123 onchange用户改变域的内容123 onclick鼠标点击某个对象123 ondblclick鼠标双击某个对象144 onerror当加载文档或图像时发生某个错误134 onfocus元素获得焦点123 onkeydown某个键盘的键被按下143 onkeypress某个键盘的键被按下或按住143 onkeyup某个键盘的键被松开143 onload某个页面或图像被完成加载123 onmousedown某个鼠标按键被按下144 onmousemove鼠标被移动163 onmouseout鼠标从某元素移开144 onmouseover鼠标被移到某元素之上123 onmouseup某个鼠标按键被松开144 onreset重置按钮被点击134 onresize窗口或框架被调整尺寸144 onselect文本被选定123 onsubmit提交按钮被点击123 onunload用户退出页面123 2 onload 和 onUnload 当用户进入或离开页面时就会触发 onload 和 onUnload 事件 onload 事件常用来检测访问者的浏 览器类型和版本 然后根据这些信息载入特定版本的网页 3 onFocus onBlur 和 onChange onFocus onBlur 和 onChange 事件通常相互配合用来验证表单 4 onSubmit onSubmit 用于在提交表单之前验证所有的表单域 下面是一个使用 onSubmit 事件的例子 当用户 单击表单中的确认按钮时 checkForm 函数就会被调用 假若域的值无效 此次提交就会被取消 checkForm 函数的返回值是 true 或者 false 如果返回值为 true 则提交表单 反之取消提交 5 onMouseOver 和 onMouseOut onMouseOver 和 onMouseOut 用来创建 动态的 按钮 下面是一个使用 onMouseOver 事件的例子 当 onMouseOver 事件被脚本侦测到时 就会弹出一个警告框 6 JavaScript 计时事件 通过使用 JavaScript 我们有能力作到在一个设定的时间间隔之后来执行代码 而不是在函数被调 用后立即执行 我们称之为计时事件 在 JavaScritp 中使用计时事件是很容易的 两个关键方法是 setTimeout 未来的某时执行代码 语法 var t setTimeout javascript 语句 毫秒 clearTimeout 取消 setTimeout 语法 clearTimeout setTimeout variable varvar c 0 varvar t functionfunction timedCount document getElementById txt value c c c 1 t setTimeout timedCount 100 functionfunction stopCount clearTimeout t JavaScriptJavaScript 学习笔记学习笔记 14 10 10 异常处理异常处理 Try CatchTry Catch 语句语句 1 异常处理格式 try 在此运行代码 catch err 在此处理错误 2 例子 varvar txt trytry adddlert Welcome guest alert拼写错误 catchcatch err txt 错误描述 err description n n alert txt 3 Throw 声明 Throw 语法 throw exception exception 可以是字符串 整数 逻辑值或者对象 例子 varvar x prompt 输入一个0到10的数值 100 trytry ifif x 10 throwthrow Err1 elseelse ifif x 0 throwthrow Err2 catchcatch er ifif er Err1 alert 值大了 ifif er Err2 alert 值小了 document write 您输入的是 x 4 onerror 事件 onerror 事件功能 可以使用 onerror 事件捕获网页中的错误 chrome opera safari 浏览器不支持 不建议使用 语法 onerror handleErrfunction handleErr msg url l Handle the error here return true or false JavaScriptJavaScript 学习笔记学习笔记 15 浏览器是否显示标准的错误消息 取决于 onerror 的返回值 如果返回值为 false 则在控制 台 JavaScript console 中显示错误消息 反之则不会 例子 onerror handleErr varvar txt functionfunction handleErr msg url l txt 错误信息 msg n txt 错误文件 url n txt 错误行数 l n n alert txt returnreturn truetrue functionfunction err adddlert Welcome guest alert拼写错误 11 11 特殊字符与注意点特殊字符与注意点 1 特殊字符 代码代码输出输出 代码代码输出输出 代码代码输出输出 单引号 双引号 t制表符 document write txt length 输出3 对象方法的使用 varvar txt abcdefg document write txt toUpperCase 输出ABCDEFG 2 对象的定义与实例化 可以先实例化对象 再定义对象的属性和方法 JavaScriptJavaScript 学习笔记学习笔记 16 varvar oCar newnew Object 先实例化对象 oCar color red 定义属性 oCar showColor functionfunction 定义方法 document write thisthis color 使用this引用当前对象 oCar showColor 调用方法 输出 red document write oCar color 使用属性 输出 red 如果构造函数无参数 括号则不是必需的 因此可以采用下面的形式实例化对象 var oCar new Object 3 对象的作用域 JavaScript 对象只有公用作用域 由于缺少私有作用域 开发者确定了一个规约 说明哪些属性和方法应该被看做私有的 这种 规约规定在属性前后加下划线 obj color blue 下划线并不改变属性是公用属性的事实 它 只是告诉其他开发者 应该把该属性看作私有的 JavaScript 对象没有静态作用域 严格来说 JavaScript 并没有静态作用域 不过 它可以给构造函数提供属性和方法 构造函 数只是函数 函数也是对象 对象可以有属性和方法 例如 functionfunction sayHello 构造函数 sayHello是一个类名 document write hello sayHello alternate functionfunction 构造函数的方法成员 可以看成静态方法 document write hi sayHello message 你好 构造函数的属性 可以看成静态属性 sayHello 输出 hello sayHello alternate 输出 hi document write sayHello message 输出 你好 关键字 this 要掌握的最重要的概念之一是关键字 this 的用法 它用在对象的方法中 关键字 this 总是 指向调用该方法的对象 functionfunction showColor document write thisthis color varvar oCar1 newnew Object oCar1 color red oCar1 showColor showColor varvar oCar2 newnew Object oCar2 color blue oCar2 showColor showColor oCar1 showColor 输出 red oCar2 showColor 输出 blue 4 定义类或对象的方法 工厂方式 functionfunction createCar sColor iDoors iMpg 创建对象的工厂 JavaScriptJavaScript 学习笔记学习笔记 17 varvar oTempCar newnew Object oTempCar color sColor 属性 oTempCar doors iDoors 属性 oTempCar mpg iMpg 属性 oTempCar showColor functionfunction 方法 document write thisthis color returnreturn oTempCar varvar oCar1 createCar red 4 23 创建对象 varvar oCar2 createCar blue 3 25 创建对象 oCar1 showColor 输出 red oCar2 showColor 输出 blue 构造函数方式和原型方式 构造函数方式 首先在构造函数内没有创建对象 而是使用 this 关键字 使用 new 运算符构 造函数时 在执行第一行代码前先创建一个对象 只有用 this 才能访问该对象 然后可以直接赋 予 this 属性 默认情况下是构造函数的返回值 不必明确使用 return 运算符 functionfunction Car sColor iDoors iMpg thisthis color sColor thisthis doors iDoors thisthis mpg iMpg thisthis showColor functionfunction document write thisthis color varvar oCar1 newnew Car red 4 23 varvar oCar2 newnew Car blue 3 25 oCar1 showColor 输出 red oCar2 showColor 输出 blue 构造函数方式的问题 就像工厂函数 构造函数会重复生成函数 为每个对象都创建独立的函 数版本 原型方式 首先用空构造函数来设置类名 然后所有的属性和方法都被直接赋予 prototype 属性 functionfunction Car Car prototype color blue Car prototype doors 4 Car prototype mpg 25 Car prototype showColor functionfunction document write thisthis color varvar oCar1 newnew Car varvar oCar2 newnew Car oCar1 showColor 输出 red oCar2 showColor 输出 blue 原型方式的问题 首先 构造函数没有参数 不能通过给构造函数传递参数来初始化属性的值 真正的问题出现在当属性是对象时 该属性只能被多个实例共享 就像是静态属性一样 functionfunction Car JavaScriptJavaScript 学习笔记学习笔记 18 Car prototype color blue Car prototype drivers newnew Array Mike John 属性对象只能共享 像静态属性 varvar oCar1 newnew Car varvar oCar2 newnew Car oCar1 drivers push 李志伟 document write oCar1 drivers 输出 Mike John 李志伟 document write oCar2 drivers 输出 Mike John 李志伟 混合的构造函数 原型方式 常用方式 functionfunction Car sColor iDoors iMpg 构造函数方式 thisthis color sColor thisthis doors iDoors thisthis mpg iMpg thisthis drivers newnew Array Mike John Car prototype showColor functionfunction 原型方式 alert thisthis color varvar oCar1 newnew Car red 4 23 varvar oCar2 newnew Car blue 3 25 oCar1 drivers push 李志伟 document write oCar1 drivers 输出 Mike John 李志伟 document write oCar2 drivers 输出 Mike John 动态原型方法 常用方式 functionfunction Car sColor iDoors iMpg thisthis color sColor thisthis doors iDoors thisthis mpg iMpg thisthis drivers newnew Array Mike John 属性对象不会共享 ifif typeoftypeof Car initialized undefined 在该代码块定义方法 Car prototype showColor functionfunction 使每个对象共享一个方法 alert thisthis color Car initialized truetrue 总结 使用哪种方式好 如前所述 目前使用最广泛的是混合的构造函数 原型方式 此外 动态原始方法也很流行 在功能上与构造函数 原型方式等价 可以采用这两种方式中的任何一种 不过不要单独使用经典的 构造函数或原型方式 因为这样会给代码引入问题 2 2 修改对象修改对象 1 创建新方法 可以用 prototype 属性为任何已有的类定义新方法 就像处理自己的类一样 例如 Number 类的 toString 方法 如果给它传递参数 16 它将输出十六进制的字符串 如果这个方法的参数是 2 那么 它将输出二进制的字符串 我们可以创建一个方法 可以把数字对象直接转换为十六进制字符串 创建这 个方法非常简单 JavaScriptJavaScript 学习笔记学习笔记 19 Number prototype toHexString functionfunction 为Number 本地对象 添加新方法 returnreturn thisthis toString 16 varvar iNum 255 document write iNum toHexString 输出 ff 2 重命名已有方法 我们还可以为已有的方法命名更易懂的名称 例如 可以给 Array 类添加两个方法 enqueue 和 dequeue 只让它们反复调用已有的 push 和 shift 方法即可 Array prototype enqueue functionfunction vItem thisthis push vItem Array prototype dequeue functionfunction returnreturn thisthis shift 3 添加与已有方法无关的方法 当然 还可以添加与已有方法无关的方法 例如 假设要判断某个项在数组中的位置 没有本地方 法可以做这种事情 我们可以轻松地创建下面的方法 Array prototype indexOf functionfunction vItem forfor varvar i 0 i thisthis length i ifif vItem thisthis i returnreturn i returnreturn 1 4 为本地对象添加新方法 最后 如果想给 JavaScript 中每个本地对象添加新方法 必须在 Object 对象的 prototype 属性上 定义它 所有本地对象都继承了 Object 对象 所以对 Object 对象做任何改变 都会反应在所有本地对象 上 例如 如果想添加一个用警告输出对象的当前值的方法 可以采用下面的代码 Object prototype showValue functionfunction alert thisthis valueOf varvar str hello varvar iNum 25 str showValue 输出 hello iNum showValue 输出 25 3 3 对象类型转换对象类型转换 1 转换成字符串 使用对象的 toString 方法就可以把当前对象转换成字符串 Number 类型的 toString 方法比较特 殊 它有两种模式 即默认模式和基模式 采用默认模式 toString 方法只是用相应的字符串输出数字 值 无论是整数 浮点数还是科学计数法 采用 Number 类型的 toString 方法的基模式 可以用不同的 基输出数字 例如二进制的基是 2 八进制的基是 8 十六进制的基是 16 varvar iNum 10 JavaScriptJavaScript 学习笔记学习笔记 20 document write iNum toString 输出 10 document write iNum toString 2 输出 1010 document write iNum toString 8 输出 12 document write iNum toString 16 输出 A 2 转换成数字 JavaScript 提供了两种把非数字的原始值转换成数字的方法 即 parseInt 和 parseFloat 前 者把值转换成整数 后者把值转换成浮点数 只有对 String 类型调用这些方法 它们才能正确运行 对 其他类型返回的都是 NaN parseInt parseInt 方法首先查看位置 0 处的字符 判断它是否是个有效数字 如果不是 该方法将返 回 NaN 不再继续执行其他操作 但如果该字符是有效数字 该方法将查看位置 1 处的字符 进行 同样的测试 这一过程将持续到发现非有效数字的字符为止 此时 parseInt 将把该字符之前的字 符串转换成数字 document write parseInt 12345red 返回 12345 document write parseInt 0 xA 返回 10 document write parseInt 56 9 返回 56 document write parseInt red 返回 NaN parseInt 方法还有基模式 可以把二进制 八进制 十六进制或其他任何进制的字符串转换 成整数 基是由 parseInt 方法的第二个参数指定的 例如 document write parseInt 10 2 返回2 document write parseInt 10 8 返回8 document write parseInt 10 10 返回10 document write parseInt f 16 返回15 parseFloat parseFloat 方法与 parseInt 方法的处理方式相似 从位置 0 开始查看每个字符 直到找 到第一个非有效的字符为止 然后把该字符之前的字符串转换成整数 不过 对于这个方法来说 第一个出现的小数点是有效字符 如果有两个小数点 第二个小数 点将被看作无效的 parseFloat 会把这个小数点之前的字符转换成数字 这意味着字符串 11 22 33 将被解析成 11 22 使用 parseFloat 方法的另一不同之处在于 字符串必须以十进制形式表示浮点数 而不是 用八进制或十六进制 该方法会忽略前导 0 所以八进制数 0102 将被解析为 102 对于十六进制 数 0 xA 该方法将返回 NaN 因为在浮点数中 x 不是有效字符 此外 parseFloat 方法也没有 基模式 document write parseFloat 11 2 返回 11 2 document write parseFloat 0 xA 返回0 document write parseFloat 11 22 33 返回 11 22 document write parseFloat red 返回 NaN 3 强制类型转换 ECMAScript 中可用的 3 种强制类型转换如下 Boolean value 把给定的值转换成 Boolean 型 Number value 把给定的值转换成数字 可以是整数或浮点数 String value 把给定的值转换成字符串 用这三个函数之一转换值 将创建一个新值 存放由原始值直接转换成的值 Boolean 函数 当要转换的值是至少有一个字符的字符串 非 0 数字或对象时 Boolean 函数将返回 true 如果该值是空字符串 数字 0 undefined 或 null 它将返回 false document write Boolean false 空字符串 document write Boolean false true 非空字符串 document write Boolean 50 true 非零数字 document write Boolean 0 false 零 document write Boolean nullnull false null JavaScriptJavaScript 学习笔记学习笔记 21 document write Boolean newnew Object true 对象 Number 函数 Number 函数的强制类型转换与 parseInt 和 parseFloat 方法的处理方式相似 只是它转 换的是整个值 而不是部分值 用 Number 进行强制类型转换 1 2 3 将返回 NaN 因为整个字 符串值不能转换成数字 如果字符串值能被完整地转换 Number 将判断是调用 parseInt 方法还 是 parseFloat 方法 String 函数 最后一种强制类型转换方法 String 是最简单的 因为它可把任何值转换成字符串 要执行这 种强制类型转换 只需要调用作为参数传递进来的值的 toString 方法 即把 12 转换成 12 把 true 转换成 true 把 false 转换成 false 以此类推 强制转换成字符串和调用 toString 方法的唯一不同之处在于 对 null 和 undefined 值 强制类型转换可以生成字符串而不引发错误 document write String nullnull null varvar oNull nullnull varvar s2 oNull toString 会引发错误 4 4 JavaScriptJavaScript 常用对象常用对象 1 对象类型说明 本地对象 ECMA 262 把本地对象 native object 定义为 独立于宿主环境的 ECMAScript 实现提供的 对象 简单来说 本地对象就是 ECMA 262 定义的类 引用类型 它们包括 Object Function Array String Boolean Number Date RegExp Error EvalError Range Error ReferenceError SyntaxError TypeError URIError 内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论