热门网站,2017网站开发合同下载,wordpress垂直分页导航插件,免费行情软件app网练习中使用的浏览器是IE10#xff0c;如果各位朋友有不同意见或者遇到浏览器不兼容问题#xff0c;希望指正 1、内置对象的定义#xff1a;有ECMAScript实现提供的、不依赖与宿主环境的对象#xff0c;在ECMAScript运行之前就已经创建好的对象就叫做内置对象。就是说… 练习中使用的浏览器是IE10如果各位朋友有不同意见或者遇到浏览器不兼容问题希望指正 1、内置对象的定义有ECMAScript实现提供的、不依赖与宿主环境的对象在ECMAScript运行之前就已经创建好的对象就叫做内置对象。就是说是不需要我们开发人员先是的实例化对象就能够调用和运行的对象。 在ECM-262中只是定义了两个内置对象 Global和Math对象 2、Global对象 Global(全局)对象是在ECMAScript中是一个特别的对象因为这个对象是不存在的。在ECMAScript 中任何不属于其他对象的方法和属性都是这个对象的方法和属性。所有事实上并不存在什么全局属性和全局函数因为一切全局的函数和属性都是这个Global对象的方法和属性。但是由于这个对象并不是真真存在的并且ECMAScript也没有定义怎样定义和调用这个对象故所有Global.属性和Global.()都是无效的但是在WEB浏览器中中把Global对象作为window对象的一部分实现了故一切的所谓的全局属性和方法都是window对象的方法和属性。 1 //ECMAScript 中没有定义怎么调用Global对象故Global.属性 或者Global.方法 都是无效的2 //Web浏览器中将global作为window对象的一部分来加以实现3 alert(window); //object Window4 alert(Global); //error Global not undefined5 6 var boxabc;7 alert(window.box); //abc8 alert(Global.box); //error9
10 function run(){
11 return abc;
12 }
13 alert(window.run()); //abc
14 alert(global.run()); //error global not undefined
15 alert(Global.run()); //error global not undefined View Code 3、URI编码方法--Global对象的内置方法 URI编码方法可以编码连接以便发送给浏览器采用特殊的UTF-8编码特殊的不认识的字符比如在浏览器的地址栏中有汉字的时候IE显示的结果就是编码的如果不编码或者编码浏览器不认识就会显示一个乱码结果就是找不到连接中所要请求的页面 encodeURI(box): 对变量box进行编码但是这个方法不能够对URI本身特殊字符编码比如 正斜杠#冒号问号等不会编码但是会编码汉字等 encodeURIComponent(box): 完全编码它会将发现的URI中所有的非标准字符进行编码。因为编码彻底故使用的频率要比不完全编码(encodeURI())方法多很多。 1 //编码方法 encodeURI() encodeURIComponent()
2 //encodeURI()不会对斜杠冒号问号和#等编码 encodeURIComponent则会对它发现的全部非标准字符进行编码
3 var box//abc??123::hhh|||但是;
4 alert(box);
5 alert(encodeURI(box)); //结果为 //abc??123::hhh%7C%7C%7C%E4%BD%86%E6%98%AF
6 alert(encodeURIComponent(box)); //结果为 %2F%2Fabc%3F%3F123%3A%3Ahhh%7C%7C%7C%E4%BD%86%E6%98%AF View Code 4、URI解码方法--Global对象的内置方法 通过上面两种编码方法进行编码的URI可以通过解码方法进行解码。然后还原可读的URI decodeURI(): 用来解码由编码方法 encodeURI()编码的URI decodeURIComponent(): 用来解码由编码方法 encodeURIComponent() 编码的URI 解码方法和编码方法最好对应的使用用什么方法编码就用对应的方法进行解码否则可能会造成解码不出来或者解码不完整 1 //解码方法decodeURI() decodeURIComponent() 解码方法必须要和编码的方法进行对应使用否则可能解码不彻底2 //下面的例子中不完全解码就不能够解码完全编码中关于特殊字符的编码结果虽然完全解码将不完全编码结果解码正确3 //但是也不要这样套用函数、命令等最好是成套使用4 var box//abc??123::hhh|||但是;5 var code1encodeURI(box); //用不完全编码方式进行编码6 var code2encodeURIComponent(box); //用完全编码方式进行编码 7 alert(decodeURI(code1)); //用不完全解码方式解码不完全编码结果 //abc??123::hhh|||但是8 alert(decodeURI(code2)); //用不完全解码方式解码完全编码结果 %2F%2Fabc%3F%3F123%3A%3Ahhh|||但是9 alert(decodeURIComponent(code1)); //用完全解码方式解码不完全编码结果//abc??123::hhh|||但是
10 alert(decodeURIComponent(code2)); //用完全解码方式解码完全编码结果 //abc??123::hhh|||但是 View Code 5、eval 方法--Global对象内置方法 eval()方法是用来担当一个字符串解析器的作用只是接收一个参数而这个参数中就是要执行的JS代码多余的参数会忽略的此方法可能有返回值也可能没要根据参数中的JS代码而定在AJAX中传递参数的时候很有用 如果解析的字符串中的JS代码是定义变量比如说数组对象字符串等代码则会返回这些定义结果并且还原真正的类型如果是定义一个函数或者调用一个函数则没有返回值 1 //eval() 方法用来解析字符串只是接受一个参数这个参数中就是要执行的JS代码在AJAX中用来传递参数很频繁使用2 var boxalert(wo shi zai zi fu chuan zhong di JS dai ma !!!);3 alert(box); // alert(wo shi zai zi fu chuan zhong di JS dai ma !!!)4 eval(box); // wo shi zai zi fu chuan zhong di JS dai ma !!!5 6 var boxalert(abc); //注意要写正确这里面的JS代码7 alert(box); //alert(abc)8 alert(eval(box)); //先输出abc 这是eval解析字符串box的结果然后输出 undefined 说明此时eval方法没有返回值9
10 //下面方法说明在eval方法解析某种字面量变量的时候返回的就是这个字面量的值
11 var box[3,4,5,6];
12 alert(box); // [3,4,5,6]
13 var reseval(box);
14 alert(res); // 3,4,5,6 eval() 方法将解析的结果返回是一个数组
15
16 var box234;
17 alert(typeof eval(box)); //string
18 alert(eval(box)); //234 如果字符串中定义有函数或者变量等和正则表达式中的一些属性一样需要先执行以下也就是说先解析一下(eval(box));然后后面的语句中就可以调用这个字符串中定义的方法了 1 //如果字符串中含有方法或者变量的时候是需要先解析一次字符串然后就可以调用和执行字符串中的方法
2 var boxvar run123;function sum(){return 123;};
3 //alert(sum()); // error: not undefiend
4 //alert(run); // error: not undefined
5 eval(box); //解析一次就将box中最原始的JS代码进行了还原
6 alert(sum()); // 123 上面通过eval方法解析了字符串 box 知道定义了一个方法名为sum
7 alert(run); //123 eval() 方法虽然很好用功能很强大但是也是很危险的方法因此在使用的时候应该谨慎使用。特别是在用户输入数据的时候很可能会导致程序的安全性问题比如代码注入等等 6、Global 内置的一些属性 有很多属性比如 undefined,Array,NaN,Object,Function 等alert(Array);返回的就是数组类型Array的构造函数也就是调用Array.constructor 时候的返回值 7、window对象 前面说了由于无法对Global对象进行全局访问而Web对象把window对象当做全局对象来访问alert(window.Array);的结果和上面是一样返回的是数组的构造方法 8、Math对象 Math对象是ECMAScript为了保存数学公式和信息而提供的一个对象这个对象中的属性和方法的执行效率要比我们直接在JS中编写数学公式的效率高很多 9、Math对象的属性 Math对象的属性都是在平时的计算中很多时候都会用到的一些特殊的值注意大小写 属性说明Math.E返回的是自然数e的值Math.PI返回的是圆周率π的值Math.LN2返回的是以自然数e为底2的自然对数Math.LN10返回的是以自然数e为底10的自然对数Math.LOG2E返回以2为底自然数e的对数Math.LOG10E返回的是以10为底自然数e的对数Math.SQRT2返回的是2的开平方根Math.SQRT1_2返回的是1/2的平方根 1 //Math 对象的属性 注意都是大写 下面这些属性都是Math对象内置的属性2 alert(Math.E); // 自然数e2.7182818284590453 alert(Math.PI); // 圆周率π3.1415926535897934 alert(Math.LN10); // 10 的自然对数2.3025850929940465 alert(Math.LN2); // 2 的自然对数0.69314718055994536 alert(Math.LOG2E); // 以2为底e 的对数1.44269504088896337 alert(Math.LOG10E); // 以 10 为底e 的对数0.43429448190325188 alert(Math.SQRT2); // 2 的开平方根1.41421356237309519 alert(Math.SQRT1_2); // 1/2 的开平方根0.7071067811865476
10
11 //证明了上面这都是内置的一些属性
12 alert(Math.LN20); //undefined
13 alert(Math.LOG5E); //undefined
14 alert(Math.SQRT1_4);//undefined
15 alert(Math.SQRT9); //undefined View Code 10、min()、max() 方法 返回的是一组数中的最大值和最小值前提是这一组数中必须全部能够成功的通过隐试转换成数值也就是说可以包含数值型字符串但是不能够包含非数值型字符串否则会返回NaN。 不能够传递一个数组进去返回的也是NaN,只能这样使用 Math.min(2,3,4,5,7,1); 1 // min() max() 用来求一组数中的最大值和最小值2 alert(Math.min(3,5,6,7,8,9)); //33 alert(Math.max(3,5,6,7,8,9)); //94 5 //数值行字符串自动转换6 alert(Math.min(3,4,9,10,5,6)); //37 alert(Math.max(3,4,9,10,5,6)); //108 9 //如果不能够转换其中的任何一个数字返回的是NaN转换的时候应该是调用的Number(x)方法进行转换的
10 alert(Math.min(abc,4,9,10,5,6)); //NaN
11 alert(Math.max(abc,4,9,10,5,6)); //NaN
12 alert(Math.max(3,4,9,10,5,6abc)); //NaN
13
14 //不支持传递一个数组进去
15 var box[2,3,4,5,6,7,8];
16 alert(Math.min(box)); //NaN
17 alert(Math.max(box)); //NaN
18 //alert(box.min()); //不提供此方法
19 alert(box.min); //undefined View Code 11、舍入方法 Math.ceil(num)将num向上舍入到里这个数最近的一个整数。Math.ceil(5.1)6为true Math.floor(num)将num向下舍去即它总是将数值向下舍入为最接近的整数取整 Math.round(num)四舍五入方法 这些方法同样能够接收数值型的字符串(5)因为内部会隐试的调用Number()转换方法只是处理传入进去的第一个参数其余的参数会被忽略掉 1 // 舍入方法 ceil() floor() round() 只是接受一个参数多余的会忽略掉2 //ceil() 方法 就是向上舍入将小数点后面的数值向上舍入为最近的整数3 alert(Math.ceil(5.9)); //64 alert(Math.ceil(5.5)); //65 alert(Math.ceil(5.1)); //66 alert(Math.ceil(5.1)); //6 自动调用内置的转换方法Number()方法7 alert(Math.ceil(5.1a)); //NaN8 9 //floor() 方法就是向下舍去将小数点后面的数值向下舍为最近的整数
10 alert(Math.floor(5.9)); //5
11 alert(Math.floor(5.5)); //5
12 alert(Math.floor(5.1)); //5
13 alert(Math.floor(5.1)); //5 自动调用内置的转换方法 Number()方法
14 alert(Math.floor(5.1a)); //NaN
15
16 // round() 方法对参数进行四舍五入
17 alert(Math.round(5.9)); //6
18 alert(Math.round(5.5)); //6
19 alert(Math.round(5.1)); //5
20 alert(Math.round(5.1)); //5
21 alert(Math.round(5.1a)); //NaN
22
23 alert(Math.round(5.4,6.7)); //5 View Code 12、random 方法 这个方法是产生一个0到1之间的随机数但是不包括0和1Math.random() 即可 但是很多时候需要返回的是一个自定义的范围的随机数可以采用一个公式Math.floor(Math.random()*总数起始数)。这个总数并不是范围的结束数而是通过计算而得总数结束数-起始数1。由于随机数返回的是一个浮点数故还要通过向下取整来进行舍入 可以通过函数的方法可以进行一个封装传递两个参数起始数和结尾数返回一个符合此范围的随机数 1 // 随机数 random 方法 用来返回的是0到1之间的一个随机数2 var boxMath.random(); // 产生一个0到1之间的随机数3 alert(box);4 5 //产生10个0到1之间的随机数并且输出到界面上6 for(var i0;i10;i){7 document.write(Math.random());8 document.write(br /);9 }
10
11 //产生的是9到14之间的随机数 本来是想产生5~10之间的整数
12 for(var i0;i10;i){
13 document.write(Math.random()*105);
14 document.write(br /);
15 }
16
17 //为了解决上面的问题可以采用公式Math.random()*总数起始数 其中 总数结束数-起始数1原因不解释
18 //接收两个参数返回在这两个参数之间的随机整数。
19 function ran(start,end){
20 var countend-start1;
21 return Math.floor(Math.random()*countstart);//产生一个符合区间的随机数然后向下取整
22 }
23
24 for(var i0;i10;i){
25 document.write(ran(5,10)); //产生5~10之间的一个随机数
26 document.write(br /);
27 } View Code 13、其它的数学方法 方法说明Math.abs(num)返回数据 num 的绝对值Math.exp(num)返回自然数 e 的 num 次方Math.log(num)返回 num 关于自然数 e 的对数Math.pow(num,power)返回数据 num 的 power 次方Math.sqrt(num)返会 num 的开平方根Math.sin(x)返回 x 的正弦值x 是弧度单位Math.cos(x)返回 x 的余弦值x 是弧度单位Math.tan(x)返回 x 的正切值x 是弧度单位Math.asin(x)返回 x 的反正弦值返回的单位是弧度Math.acos(x)返回 x 的反余弦值返回的单位是弧度Math.atan(x)返回 x 的反正切值返回的单位是弧度Math.atan2(x,y)返回的是 x/y 的反正切值弧度单位 求正切的时候结果不是很精确alert(Math.tan(Math.PI/4)); //0.99999999999 1 //其他的一些方法2 alert(Math.abs(-3)); //3 取绝对值方法3 alert(Math.exp(3)); //20.085536923187668 自然数 e 的3次方传递的参数可变的4 5 alert(Math.LN10); //属性返回10的自然对数6 //返回一个数的自然对数就是以 e 为底的自然对数7 alert(Math.log(10));8 alert(Math.log(100));9 alert(Math.log(9));
10
11 // Math.pow(num,power) 返回的是num数据的power次幂
12 alert(Math.pow(2,3)); //8
13 alert(Math.pow(4,2)); //16
14
15 // Math.sqrt(num) 返回数据 num 的平方根
16 //这两个是属性中的开平方根
17 alert(Math.SQRT2);
18 alert(Math.SQRT1_2);
19 //下面才是方法的使用
20 alert(Math.sqrt(9)); //3
21 alert(Math.sqrt(100)); //10
22
23 // 三角函数 是以弧度为单位
24 alert(Math.sin(90)); //0.8939966636005578
25 alert(Math.sin(Math.PI/2)); //1
26 alert(Math.cos(Math.PI/4)); //余弦
27 alert(Math.tan(Math.PI/4)); //0.99999999999 正切
28
29 //求反正切 Math.atan(x); 返回的也是弧度值
30 alert(Math.atan(1)); //0.7853981633974483
31 alert(Math.PI/4); //0.7853981633974483
32 //Math.atan2(x,y);返回的是x/y的反正切值
33 alert(Math.atan2(4,2)); //1.1071487177940904
34 alert(Math.atan(2)); //1.1071487177940904
35
36 //反余弦与反正弦
37 alert(Math.asin(1)); //1.5707963267948965
38 alert(Math.PI/2); //1.5707963267948965
39 alert(Math.acos(1)); //0
40 alert(Math.acos(-1)); //3.141592653589793
41 alert(Math.PI); //3.141592653589793 View Code 转载于:https://www.cnblogs.com/qigang/p/3520974.html