1、Javascript2015Administrator刘行2015/9/232第 2 章 使用 JavaScript学习要点:1.创建一张 HTML 页面2.标签解析3.JS 代码嵌入的一些问题主讲教师:李炎恢合作网站:http:/讲师博客:http:/ HTML 页面虽然现在很多教材开始使用 html5 来讲解 JavaScript 课程。但我认为这样可能比较超前,对于 JavaScript 初学者,我们还是用比较普及和稳定的 xhtml1.x 来创建一张页面。很多时候,你无法记住 xhtml1.x 过渡性的标准格式。这个时候,建议打开Dreamweaver 来获取。页面创建好后,编写一个最
2、简单的 JavaScript 脚本(简称 JS 脚本) 。注意网页的编码格式及文件存储的编码。2标签解析xxx这组标签,是用于在 html 页面中插入 js 的主要方法。它主要有以下几个属性:1.charset:可选。表示通过 src 属性指定的字符集。由于大多数浏览器忽略它,所以很少有人用它。2.defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。由于大多数浏览器不支持,故很少用。3.language:已废弃。原来用于代码使用的脚本语言。由于大多数浏览器忽略它,所以不要用了。4.src:可选。表示包含要执行代码的外部文件。5.type:必需。可以看作是 language 的替
3、代品。表示代码使用的脚本语言的内容类型。范例:type=“text/javascript“。alert(欢迎来到 JavaScript 世界!);33JS 代码嵌入的一些问题如果你想弹出一个标签的字符串,那么浏览器会误解成 JS 代码已经结束了。解决的方法,就是把字符串分成两个部分,通过连接符+来连接。alert();一般来说,JS 代码越来越庞大的时候,我们最好把他另存为一个.js 文件,通过 src 引入即可。它还具有维护性高、可缓存(加载一次,无需加载 )、方便未来扩展的特点。这样标签内就没有任何 JS 代码了。但,要注意的是,虽然没有任何代码,也不能用单标签:;也不能在里面添加任何代码
4、:alert(我很可怜,执行不到!)按照常规,我们会把标签存放到. 之间。但有时也会放在 body之间。不再需要提供注释,以前为了让不支持 JavaScript 浏览器能够屏蔽掉内部的代码,我们习惯在代码的前后用 html 注释掉,现在已经不需要了。平稳退化不支持 JavaScript 处理:您没有启用 JavaScript4第 3 章 语法、关键保留字及变量学习要点:1.语法构成2.关键字保留字3.变量任何语言的核心都必然会描述这门语言最基本的工作原理。而 JavaScript 的语言核心就是 ECMAScript,而目前用的最普遍的是第 3 版,我们就主要以这个版本来讲解。4.语法构成区分
5、大小写ECMAScript 中的一切,包括变量、函数名和操作符都是区分大小写的。例如:text 和Text 表示两种不同的变量。标识符所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一或多个字符:6.第一字符必须是一个字母、下划线(_)或一个美元符号($)。7.其他字符可以是字母、下划线、美元符号或数字。8.不能把关键字、保留字、true、false 和 null 作为标识符。例如:myName、book123 等注释ECMAScript 使用 C 风格的注释,包括单行注释和块级注释。/ 单行注释/* 这是一个多行* 注释*/直接量(字面量 lite
6、ral)所有直接量(字面量),就是程序中直接显示出来的数据值。100 /数字字面量李炎恢 /字符串字面量false /布尔字面量5/js/gi /正则表达式字面量null /对象字面量在 ECMAScript 第 3 版中,像数组字面量和对象字面量的表达式也是支持的,如下:x:1, y:2 /对象字面量表达式1,2,3,4,5 /数组字面量表达式2关键字和保留字ECMAScript-262 描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。ECMAScript 全部关键字break else new varcase f
7、inally return voidcatch for switch whilecontinue function this withdefault if throwdelete in trydo instanceof typeofECMAScript-262 还描述了另一组不能用作标识符的保留字。尽管保留字在 JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。ECMAScript-262 第 3 版定义的全部保留字abstract enum int shortboolean export interface staticbyte extends long superc
8、har final native synchronizedclass float package throwsconst goto private transientdebugger implements protected volatiledouble import public三变量6ECMAScript 的变量是松散类型的,所谓松散类型就是用来保存任何类型的数据。定义变量时要使用 var 操作符(var 是关键) ,后面跟一个变量名(变量名是标识符) 。var box; alert(box);这句话定义了 box 变量,但没有对它进行初始化(也就是没有给变量赋值) 。这时,系统会给它一个
9、特殊的值 - undefined(表示未定义) 。var box= 李炎恢;alert(box);所谓变量,就是可以初始化后可以再次改变的量。ECMAScript 属于弱类型(松散类型)的语言,可以同时改变不同类型的量。(PS:虽然可以改变不同类型的量,但这样做对于后期维护带来困难,而且性能也不高,导致成本很高!)var boxString = 李炎恢;boxString = 100; alert(boxString);重复的使用 var 声明一个变量,只不过是一个赋值操作,并不会报错。但这样的操作是比较二的,没有任何必要。var box= 李炎恢;var box= Lee;还有一种变量不需要
10、前面 var 关键字即可创建变量。这种变量和 var 的变量有一定的区别和作用范围,我们会在作用域那一节详细探讨。box= 李炎恢;当你想声明多个变量的时候,可以在一行或者多行操作。var box= 李炎恢;var age= 100;而当你每条语句都在不同行的时候,你可以省略分号。(PS:这是 ECMAScript 支持的,但绝对是一个非常不好的编程习惯,切记不要)。var box= 李炎恢var age= 100alert(box)可以使用一条语句定义多个变量,只要把每个变量(初始化或者不初始化均可) 用逗号分隔开即可,为了可读性,每个变量,最好另起一行,并且第二变量和第一变量对齐(PS:这
11、些都不是必须的)。7var box= 李炎恢,age = 28,height;第 4 章 数据类型学习要点:1.typeof 操作符2.Undefined 类型3.Null 类型4.Boolean 类型5.Number 类型6.String 类型7.Object 类型主讲教师:李炎恢合作网站:http:/讲师博客:http:/ 中有 5 种简单数据类型: Undefined、Null、Boolean、Number 和 String。还有一种复杂数据类型Object。ECMAScript 不支持任何创建自定义类型的机制,所有值都成为以上 6 中数据类型之一。3typeof 操作符typeof 操
12、作符是用来检测变量的数据类型。对于值或变量使用 typeof 操作符会返回如下字符串。字符串 描述undefined 未定义boolean 布尔值string 字符串number 数值object 对象或 nullfunction 函数var box = 李炎恢;8alert(typeof box);alert(typeof 李炎恢 );typeof 操作符可以操作变量,也可以操作字面量。虽然也可以这样使用:typeof(box),但,typeof 是操作符而非内置函数。PS:函数在 ECMAScript 中是对象,不是一种数据类型。所以,使用 typeof 来区分 function 和 ob
13、ject 是非常有必要的。4Undefined 类型Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量,但没有对其初始化时,这个变量的值就是 undefined。var box;alert(box);PS:我们没有必要显式的给一个变量赋值为 undefined,因为没有赋值的变量会隐式的(自动的 )赋值为 undefined;而 undefined 主要的目的是为了用于比较,ECMAScript 第 3 版之前并没有引入这个值,引入之后为了正式区分空对象与未经初始化的变量。未初始化的变量与根本不存在的变量(未声明的变量) 也是不一样的。var box;a
14、lert(age); /age is not definedPS:如果 typeof box,typeof age 都返回的 undefined。从逻辑上思考,他们的值,一个是 undefined,一个报错;他们的类型,却都是 undefined。所以,我们在定义变量的时候,尽可能的不要只声明,不赋值。5Null 类型Null 类型是一个只有一个值的数据类型,即特殊的值 null。它表示一个空对象引用( 指针),而 typeof 操作符检测 null 会返回 object。var box = null;alert(typeof box);如果定义的变量准备在将来用于保存对象,那么最好将该变量初
15、始化为 null。这样,当检查 null 值就知道是否已经变量是否已经分配了对象引用了。9var box = null;if (box != null) alert(box 对象已存在!);有个要说明的是:undefined 是派生自 null 的,因此 ECMA-262 规定对它们的相等性测试返回 true。alert(undefined = null);由于 undefined 和 null 两个值的比较是相等的,所以,未初始化的变量和赋值为 null的变量会相等。这时,可以采用 typeof 变量的类型进行比较。但,建议还是养成编码的规范,不要忘记初始化变量。var box;var ca
16、r = null;alert(typeof box = typeof car)6Boolean 类型Boolean 类型有两个值(字面量):true 和 false。而 true 不一定等于 1,false 不一定等于0。JavaScript 是区分大小写的, True 和 False 或者其他都不是 Boolean 类型的值。var box = true;alert(typeof box);虽然 Boolean 类型的字面量只有 true 和 false 两种,但 ECMAScript 中所有类型的值都有与这两个 Boolean 值等价的值。要将一个值转换为其对应的 Boolean 值,可以
17、使用转型函数 Boolean()。var hello = Hello World!;var hello2 = Boolean(hello);alert(typeof hello);上面是一种显示转换,属于强制性转换。而实际应用中,还有一种隐式转换。比如,在 if 条件语句里面的条件判断,就存在隐式转换。var hello = Hello World!;if (hello) alert(如果条件为 true,就执行我这条!); else alert(如果条件为 false,就执行我这条!);10以下是其他类型转换成 Boolean 类型规则数据类型 转换为 true 的值 转换为 false 的
18、值Boolean true falseString 任何非空字符串 空字符串Number 任何非零数字值(包括无穷大) 0 和 NaNObject 任何对象 nullUndefined undefined7Number 类型Number 类型包含两种数值:整型和浮点型。为了支持各种数值类型,ECMA-262 定义了不同的数值字面量格式。最基本的数值字面量是十进制整数。var box = 100; /十进制整数八进制数值字面量,(以 8 为基数 ),前导必须是 0,八进制序列 (07)。var box = 070; /八进制,56var box = 079; /无效的八进制,自动解析为 79va
19、r box = 08; /无效的八进制,自动解析为 8十六进制字面量前面两位必须是 0x,后面是(09 及 AF)。var box = 0xA; /十六进制,10var box = 0x1f; /十六进制,31浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。var box = 3.8;var box = 0.8;var box = .8; /有效,但不推荐此写法由于保存浮点数值需要的内存空间比整型数值大两倍,因此 ECMAScript 会自动将可以转换为整型的浮点数值转成为整型。var box = 8.; /小数点后面没有值,转换为 8var box = 12.0;
20、 /小数点后面是 0,转成为 1211对于那些过大或过小的数值,可以用科学技术法来表示(e 表示法) 。用 e 表示该数值的前面 10 的指数次幂。var box = 4.12e9; /即 4120000000var box = 0.00000000412; /即 4.12e-9虽然浮点数值的最高精度是 17 位小数,但算术运算中可能会不精确。由于这个因素,做判断的时候一定要考虑到这个问题(比如使用整型判断)。alert(0.1+0.2); /0.30000000000000004浮点数值的范围在:Number.MIN_VALUE Number.MAX_VALUE 之间。alert(Numbe
21、r.MIN_VALUE); /最小值alert(Number.MAX_VALUE); /最大值如果超过了浮点数值范围的最大值或最小值,那么就先出现 Infinity(正无穷)或者-Infinity(负无穷 )。var box = 100e1000; /超出范围, Infinityvar box = -100e1000; /超出范围, -Infinity也可能通过 Number.POSITIVE_INFINITY 和 Number.NEGATIVE_INFINITY 得到Infinity(正无穷 )及-Infinity(负无穷) 的值。alert(Number.POSITIVE_INFINITY
22、); /Infinity(正无穷)alert(Number.NEGATIVE_INFINITY);/-Infinity(负无穷)要想确定一个数值到底是否超过了规定范围,可以使用 isFinite()函数。如果没有超过,返回 true,超过了返回 false。var box = 100e1000;alert(isFinite(box); /返回 false 或者 trueNaN,即非数值 (Not a Number)是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况( 这样就不会抛出错误了) 。比如,在其他语言中,任何数值除以 0 都会导致错误而终止程序执行。但在 ECM
23、AScript 中,会返回出特殊的值,因此不会影响程序执行。var box = 0 / 0; /NaNvar box = 12 / 0; /Infinityvar box = 12 / 0 * 0; /NaN可以通过 Number.NaN 得到 NaN 值,任何与 NaN 进行运算的结果均为 NaN,NaN 与12自身不相等(NaN 不与任何值相等) 。alert(Number.NaN); /NaNalert(NaN+1); /NaNalert(NaN = NaN) /falseECMAScript 提供了 isNaN()函数,用来判断这个值到底是不是 NaN。isNaN()函数在接收到一个值
24、之后,会尝试将这个值转换为数值。alert(isNaN(NaN); /truealert(isNaN(25); /false,25 是一个数值alert(isNaN(25); /false,25是一个字符串数值,可以转成数值alert(isNaN(Lee); /true,Lee不能转换为数值alert(isNaN(true); /false true 可以转成成 1isNaN()函数也适用于对象。在调用 isNaN()函数过程中,首先会调用 valueOf()方法,然后确定返回值是否能够转换成数值。如果不能,则基于这个返回值再调用 toString()方法,再测试返回值。var box = t
25、oString : function () return 123; /可以改成 return Lee查看效果;alert(isNaN(box); /false有 3 个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat()。Number()函数是转型函数,可以用于任何数据类型,而另外两个则专门用于把字符串转成数值。alert(Number(true); /1,Boolean 类型的 true 和 false 分别转换成 1 和 0alert(Number(25); /25,数值型直接返回alert(Number(null); /0,空对象返回 0aler
26、t(Number(undefined); /NaN,undefined 返回 NaN如果是字符串,应该遵循一下规则:1.只包含数值的字符串,会直接转成成十进制数值,如果包含前导 0,即自动去掉。alert(Number(456); /456alert(Number(070); /702.只包含浮点数值的字符串,会直接转成浮点数值,如果包含前导和后导 0,即自动去13掉。alert(Number(08.90); /8.93.如果字符串是空,那么直接转成成 0。alert(Number(); /04.如果不是以上三种字符串类型,则返回 NaN。alert(Lee123); /NaN5.如果是对象,
27、首先会调用 valueOf()方法,然后确定返回值是否能够转换成数值。如果转换的结果是 NaN,则基于这个返回值再调用 toString()方法,再测试返回值。var box = toString : function () return 123; /可以改成 return Lee查看效果;alert(Number(box); /123由于 Number()函数在转换字符串时比较复杂且不够合理,因此在处理整数的时候更常用的是 parseInt()。alert(parsetInt(456Lee); /456,会返回整数部分alert(parsetInt(Lee456Lee); /NaN,如果第一
28、个不是数值,就返回 NaNalert(parseInt(12Lee56Lee); /12,从第一数值开始取,到最后一个连续数值结束alert(parseInt(56.12); /56,小数点不是数值,会被去掉alert(parseInt(); /NaN,空返回 NaNparseInt()除了能够识别十进制数值,也可以识别八进制和十六进制。alert(parseInt(0xA); /10,十六进制alert(parseInt(070); /56,八进制alert(parseInt(0xALee); /100,十六进制,Lee 被自动过滤掉ECMAScript 为 parseInt()提供了第二个
29、参数,用于解决各种进制的转换。alert(parseInt(0xAF); /175,十六进制alert(parseInt(AF,16); /175,第二参数指定十六进制,可以去掉0x 前导alert(parseInt(AF); /NaN,理所当然alert(parseInt(101010101,2); /314,二进制转换14alert(parseInt(70,8) /56,八进制转换parseFloat()是用于浮点数值转换的,和 parseInt()一样,从第一位解析到非浮点数值位置。alert(parseFloat(123Lee); /123,去掉不是别的部分alert(parseFlo
30、at(0xA); /0,不认十六进制alert(parseFloat(123.4.5); /123.4,只认一个小数点alert(parseFloat(0123.400); /123.4,去掉前后导alert(parseFloat(1.234e7); /12340000,把科学技术法转成普通数值4.String 类型String 类型用于表示由于零或多个 16 位 Unicode 字符组成的字符序列,即字符串。字符串可以由双引号(“)或单引号 ()表示。var box = Lee;var box = “Lee“;PS:在某些其他语言(PHP)中,单引号和双引号表示的字符串解析方式不同,而ECM
31、AScript 中,这两种表示方法没有任何区别。但要记住的是,必须成对出现,不能穿插使用,否则会出错。var box = 李炎恢“; /出错String 类型包含了一些特殊的字符字面量,也叫转义序列。字面量 含义n 换行t 制表b 空格r 回车f 进纸 斜杠 单引号“ 双引号xnn 以十六进制代码 nn 表示的一个字符(0F)。例:x41unnn 以十六进制代码 nnn 表示的一个 Unicode 字符(0F)。例:u03a315ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的
32、字符串填充该变量。var box = Mr.;box = box + Lee;toString()方法可以把值转换成字符串。var box = 11;var box = true;alert(typeof box.toString();toString()方法一般是不需要传参的,但在数值转成字符串的时候,可以传递进制参数。var box = 10;alert(box.toString(); /10,默认输出alert(box.toString(2); /1010,二进制输出alert(box.toString(8); /12,八进制输出alert(box.toString(10); /10,十
33、进制输出alert(box.toString(16); /a,十六进制输出如果在转型之前不知道变量是否是 null 或者 undefined 的情况下,我们还可以使用转型函数 String(),这个函数能够将任何类型的值转换为字符串。var box = null;alert(String(box);PS:如果值有 toString()方法,则调用该方法并返回相应的结果;如果是 null 或者undefined,则返回“null“或者“undeinfed“。5.Object 类型ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称
34、来创建。var box = new Object();Object()是对象构造,如果对象初始化时不需要传递参数,可以不用写括号,但这种方式我们是不推荐的。var box = new Object;16Object()里可以任意传参,可以传数值、字符串、布尔值等。而且,还可以进行相应的计算。var box = new Object(2); /Object 类型,值是 2var age = box + 2; /可以和普通变量运算alert(age); /输出结果,转型成 Number 类型了既然可以使用 new Object()来表示一个对象,那么我们也可以使用这种 new 操作符来创建其他类型
35、的对象。var box = new Number(5); /new String(Lee)、new Boolean(true)alert(typeof box); /Object 类型PS:面向对象是 JavaScript 课程的重点,这里我们只是简单做个介绍。详细的课程将在以后的章节继续学习。第 5 章 运算符学习要点:1.什么是表达式2.一元运算符3.算术运算符4.关系运算符5.逻辑运算符6.*位运算符7.赋值运算符8.其他运算符9.运算符优先级主讲教师:李炎恢合作网站:http:/讲师博客:http:/ 描述了一组用于操作数据值的运算符,包括一元运算符、布尔运算符、算术运算符、关系运算符
36、、三元运算符、位运算符及赋值运算符。ECMAScript 中的运算符适用于很多值,包括字符串、数值、布尔值、对象等。不过,通过上一章我们也了解到,应17用于对象时通常会调用对象的 valueOf()和 toString()方法,以便取得相应的值。PS:前面的章节我们讲过 typeof 操作符、new 操作符,也可以称之为 typeof 运算符、new 运算符,是同一个意思。1什么是表达式表达式是 ECMAScript 中的一个 “短语” ,解释器会通过计算把它转换成一个值。最简单的表达式是字面量或者变量名。例如:5.96 /数值字面量Lee /字符串字面量true /布尔值字面量null /空
37、值字面量/Java/ /正则表达式字面量x:1, y:2 /对象字面量、对象表达式1,2,3 /数组字面量、数组表达式function(n) return x+y; /函数字面量、函数表达式box /变量当然,还可以通过合并简单的表达式来创建复杂的表达式。比如:box + 5.96 /加法运算的表达式typeof(box) /查看数据类型的表达式box 8 /逻辑运算表达式通过上面的叙述,我们得知,单一的字面量和组合字面量的运算符都可称为表达式。2一元运算符只能操作一个值的运算符叫做一元运算符。1.递增+ 和递减-var box = 100;+box; /把 box 累加一个 1,相当于 bo
38、x = box+1-box; /把 box 累减一个 1,相当于 box = box-1box+; /同上box-; /同上182.前置和后置的区别在没有赋值操作,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置,那么前置的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减。var box = 100;var age = +box; /age 值为 101var height = box+; /height 值为 1003.其他类型应用一元运算符的规则var box = 89; box+; /90,数值字符串自动转换成数值var box = ab; box+; /Na
39、N,字符串包含非数值转成NaNvar box = false; box+; /1,false 转成数值是 0,累加就是1var box = 2.3; box+; /3.3,直接加 1var box = /1,不设置 toString 或 valueOf 即为NaNtoString : function() return 1; box+;4.加和减运算符加运算规则如下:var box = 100; +box; /100,对于数值,不会产生任何影响var box = 89; +box; /89,数值字符串转换成数值var box = ab; +box; /NaN,字符串包含非数值转成 NaNvar
40、 box = false; +box; /0,布尔值转换成相应数值var box = 2.3; +box; /2.3,没有变化var box = /1,不设置 toString 或 valueOf 即为NaNtoString : function() return 1; +box;19减运算规则如下:var box = 100; -box; /-100,对于数值,直接变负var box = 89; -box; /-89,数值字符串转换成数值var box = ab; -box; /NaN,字符串包含非数值转成 NaNvar box = false; -box; /0,布尔值转换成相应数值var
41、 box = 2.3; -box; /-2.3,没有变化var box = /-1,不设置 toString 或 valueOf 即为 NaNtoString : function() return 1; -box;加法和减法运算符一般用于算术运算,也可向上面进行类型转换。三算术运算符ECMAScript 定义了 5 个算术运算符,加减乘除求模 (取余)。如果在算术运算的值不是数值,那么后台会先使用 Number()转型函数将其转换为数值(隐式转换)。1.加法var box = 1 + 2; /等于 3var box = 1 + NaN; /NaN,只要有一个 NaN 就为 NaNvar bo
42、x = Infinity + Infinity; /Infinityvar box = -Infinity + -Infinity; /-Infinityvar box = Infinity + -Infinity; /NaN,正无穷和负无穷相加等NaNvar box = 100 + 100; /100100,字符串连接符,有字符串就不是加法var box = 您的年龄是: + 10 + 20; /您的年龄是:1020,被转换成字符串var box = 10 + 20 + 是您的年龄; /30 是您的年龄,没有被转成字符串var box = 您的年龄是: + (10 + 20); /您的年龄是
43、: 30,没有被转成字符串var box = 10 + 对象 /10object Object,如果有 toString()或valueOf()则返回 10+返回数的值2.减法var box = 100 - 70; /等于 3020var box = -100 - 70 /等于 -170var box = -100 - -70 /-30,一般写成-100 - (-70)比较清晰var box = 1 - NaN; /NaN,只要有一个 NaN 就为 NaNvar box = Infinity - Infinity; /NaNvar box = -Infinity - -Infinity; /N
44、aNvar box = Infinity - -Infinity; /Infinityvar box = -Infinity - Infinity; /-Infinityvar box = 100 - true; /99,true 转成数值为 1var box = 100 - ; /100, 转成了 0var box = 100 - 70; /30,70转成了数值 70var box = 100 - null; /100,null 转成了 0var box = 100 - Lee; /NaN,Lee 转成了 NaNvar box = 100 - 对象 /NaN,如果有 toString()或
45、valueOf()则返回 10-返回数的值3.乘法var box = 100 * 70; /7000var box = 100 * NaN; /NaN,只要有一个 NaN 即为 NaNvar box = Infinity * Infinity; /Infinityvar box = -Infinity * Infinity ; /-Infinityvar box = -Infinity * -Infinity ; /Infinityvar box = 100 * true; /100, true 转成数值为 1var box = 100 * ; /0,转成了 0var box = 100 *
46、null; /0,null 转成了 0var box = 100 * Lee; /NaN,Lee 转成了 NaNvar box = 100 * 对象 /NaN,如果有 toString()或 valueOf()则返回 10 - 返回数的值4.除法var box = 100 / 70; /1.42var box = 100 / NaN; /NaNvar box = Infinity / Infinity; /NaNvar box = -Infinity / Infinity ; /NaNvar box = -Infinity / -Infinity; /NaNvar box = 100 / tr
47、ue; /100,true 转成 1var box = 100 / ; /Infinity,var box = 100 / null; /Infinity,var box = 100 / Lee; /NaNvar box = 100 / 对象; /NaN,如果有 toString()或 valueOf()21则返回 10 / 返回数的值5.求模var box = 10 % 3; /1,余数为 1var box = 100 % NaN; /NaNvar box = Infinity % Infinity; /NaNvar box = -Infinity % Infinity ; /NaNvar
48、box = -Infinity % -Infinity; /NaNvar box = 100 % true; /0var box = 100 % ; /NaNvar box = 100 % null; /NaNvar box = 100 % Lee; /NaNvar box = 100 % 对象; /NaN,如果有 toString()或 valueOf()则返回 10 % 返回数的值4关系运算符用于进行比较的运算符称作为关系运算符:小于()、小于等于(=)、相等(=)、不等(!=) 、全等 (恒等)(=)、不全等(不恒等)(!=)和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:1.