javascript代码实例教程-JS 学习笔记--11---内置对象(Global/Math)

发布时间:2019-02-10 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-JS 学习笔记--11---内置对象(Global/Math)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。  练习中使用的浏览器是IE10,如果各位朋友有不同意见或者遇到浏览器不兼容问题,希望指正 

 

1、内置对象的定义:有ECMAScript实现提供的、不依赖与宿主环境的对象,在ecmascript运行之前就已经创建好的对象就叫做内置对象。就是说,是不需要我们开发人员先是的实例化对象就能够调用和运行的对象。 在ECM-262中只是定义了两个内置对象 Global和Math对象

 

 

 

2、Global对象    

 

  Global(全局)对象是在ECMAScript中是一个特别的对象,因为这个对象是不存在的。在ECMAScript 中任何不属于其他对象的方法和属性都是这个对象的方法和属性。所有事实上并不存在什么全局属性和全局函数,因为一切全局的函数和属性都是这个Global对象的方法和属性。但是由于这个对象并不是真真存在的,并且ECMAScript也没有定义怎样定义和调用这个对象,故所有Global.属性和Global.()都是无效的,但是在WEB浏览器中中把Global对象作为window对象的一部分实现了,故一切的所谓的全局属性和方法都是window对象的方法和属性。

 

 View Code

 

 

3、URI编码方法--Global对象的内置方法    

 

  URI编码方法可以编码连接,以便发送给浏览器,采用特殊的UTF-8编码特殊的不认识的字符,比如在浏览器的地址栏中有汉字的时候,IE显示的结果就是编码的,如果不编码或者编码浏览器不认识,就会显示一个乱码结果就是找不到连接中所要请求的页面    

 

  encodeURI(box): 对变量box进行编码,但是这个方法不能够对URI本身特殊字符编码,比如 正斜杠,#,冒号,问号等不会编码,但是会编码汉字等   

 

  encodeURIcomponent(box): 完全编码,它会将发现的URI中所有的非标准字符进行编码。因为编码彻底,故使用的频率要比不完全编码(encodeURI())方法多很多。

 

 View Code

 

 

4、URI解码方法--Global对象的内置方法    

 

  通过上面两种编码方法进行编码的URI,可以通过解码方法进行解码。然后还原可读的URI    

 

  decodeURI(): 用来解码由编码方法 encodeURI()编码的URI    

 

  decodeURIComponent(): 用来解码由编码方法 encodeURIComponent() 编码的URI    

 

  解码方法和编码方法最好对应的使用,用什么方法编码,就用对应的方法进行解码,否则可能会造成解码不出来或者解码不完整

 

 View Code

 

 

5、eval 方法--Global对象内置方法    

 

  eval()方法是用来担当一个字符串解析器的作用,只是接收一个参数,而这个参数中就是要执行的JS代码,多余的参数会忽略的,此方法可能有返回值也可能没,要根据参数中的JS代码而定,在AJAX中传递参数的时候很有用    

 

  如果解析的字符串中的JS代码是定义变量,比如说数组对象,字符串等代码,则会返回这些定义结果,并且还原真正的类型;如果是定义一个函数或者调用一个函数,则没有返回值      

 

复制代码

 1 //eval() 方法用来解析字符串,只是接受一个参数,这个参数中就是要执行的JS代码,在AJAX中用来传递参数很频繁使用

 2     VAR box='alert("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 box='alert("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 res=eval(box);

14     alert(res);            // 3,4,5,6        eval() 方法将解析的结果返回,是一个数组

15 

16     var box='"234"';

17     alert(tyPEof eval(box));    //string

18     alert(eval(box));            //234

复制代码

  如果字符串中定义有函数,或者变量等,和正则表达式中的一些属性一样,需要先执行以下,也就是说先解析一下(eval(box));然后后面的语句中就可以调用这个字符串中定义的方法了      

 

复制代码

1 //如果字符串中含有方法或者变量的时候,是需要先解析一次字符串,然后就可以调用和执行字符串中的方法,

2     var box='var run=123;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的平方

 View Code

 

 

10、min()、max() 方法    

 

  返回的是一组数中的最大值和最小值,前提是这一组数中必须全部能够成功的通过隐试转换成数值,也就是说可以包含数值型字符串,但是不能够包含非数值型字符串,否则会返回NaN。    

 

  不能够传递一个数组进去,返回的也是NaN,只能这样使用 Math.min(2,3,4,5,'7',1);

 

      

 

 View Code

 

 

11、舍入方法    

 

  Math.ceil(num):将num向上舍入到里这个数最近的一个整数。Math.ceil(5.1)==6为true    

 

  Math.floor(num):将num向下舍去,即它总是将数值向下舍入为最接近的整数;取整    

 

  Math.round(num):四舍五入方法,    

 

  这些方法同样能够接收数值型的字符串('5'),因为内部会隐试的调用Number()转换方法,只是处理传入进去的第一个参数,其余的参数会被忽略掉

 

    

 

 View Code

 

 

12、random 方法    

 

  这个方法是产生一个0到1之间的随机数,但是不包括0和1,Math.random() 即可    

 

  但是很多时候需要返回的是一个自定义的范围的随机数,可以采用一个公式:Math.floor(Math.random()*总数+起始数)。这个总数,并不是范围的结束数,而是通过计算而得:总数=结束数-起始数+1。由于随机数返回的是一个浮点数,故还要通过向下取整来进行舍入    

 

  可以通过函数的方法可以进行一个封装,传递两个参数,起始数和结尾数,返回一个符合此范围的随机数:  

 

    

 

 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 的反正切值,弧度单位

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-JS 学习笔记--11---内置对象(Global/Math)全部内容,希望文章能够帮你解决javascript代码实例教程-JS 学习笔记--11---内置对象(Global/Math)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。