javaScript单体内置对象
2016-09-29 12:55
429 查看
单体内置对象
单体内置对象就是开发人员不必显式地实例化内置对象,因为他们已经实例化了。前面的章节讨论过了大多数内置对象,ECMA-262 还定义了两个单体内置对象:Global 和Math。
Global 对象
所有在全局作用域中定义的属性和函数,都是Global 对象的属性。
URI 编码方法
encodeURI()、
encodeURIComponent()、
decodeURI()、
decodeURIComponent()方法。如下:
var uri = "http://www.bai du.com"; console.log(encodeURI(uri)); console.log(encodeURIComponent(uri)); /* [Log] http://www.bai%20du.com (repetition.html, line 16) [Log] http%3A%2F%2Fwww.bai%20du.com (repetition.html, line 17) */ var uri = "http%3A%2F%2Fwww.bai%20du.com"; console.log(decodeURI(uri)); console.log(decodeURIComponent(uri)); /* [Log] http%3A%2F%2Fwww.bai du.com (repetition.html, line 16) [Log] http://www.bai du.com (repetition.html, line 17) */
eval 方法(防止代码注入,应该谨慎使用)
这个方法就是一个完整的解析器,它只接受一个参数,即要执行的ECMAScript(JavaScript)字符串。被执行的代码具有与该执行环境相同的作用域链。这意味着通过eval()执行的代码可以引用在包含环境中定义的变量,且在该方法中创建的任何变量或者函数都不会被提升。如:
eval("function hi(){console.log('hi')}"); hi(); var num = 100; eval("document.write(num);"); eval("var num = 110;"); document.write(num);
谨慎使用!
特别是他在执行用户数据输入的情况下,后果可能非常严重。
Global 对象的属性
下面的网页列出Global 对象的所有属性:JavaScript Global 对象
Window 对象(以后再详细讨论)
EFMAScript 虽然没有给出如何直接访问Global 对象,但是Web 浏览器都是将这个全局对象作为window 对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,都成为了window 对象的属性。如:var color = "red"; var func = function(){ document.write("func function"); }; console.log(window.color); //red window.func(); //func function
创建一个立即调用的函数表达式:
var global = function(){ document.write("func") }(); ( function(){ document.write("func") } )();
上下两种都可以。具体以后讨论函数表达式。
Math 对象
ECMAScript 还为保存了数学公式和信息提供了一个公共位置,即Math 对象。
Math 对象的属性
主要有:Math.E(自然对数的底数,即e 的值)
Math.LN10(10 的自然对数)
Math.LN2(2 的自然对数)
Math.LOG2E(以2 为底e 的对数)
Math.LOG10E(以10 为底e 的对数)
Math.PI(π 的值)
Math.SQRT1_2(1/2 的平方根即2 的平方根的倒数)
Math.SQRT2(2 的平方根)
min()
和max()
方法
这两个方法对于确定一组数值中的最小和最大值非常好用。两个方法都可以接收任意多个数值。如:var maxValue = Math.max(321,3,1); console.log(maxValue); //321
那么如何提取出数组里面的最大值或最小值呢?
var valuesArray = [32,13,214,32,5432,1]; var maxValue = Math.max.apply(this,valuesArray); document.write(maxValue); //5432
使用
apply()方法可以很轻松的改变this 值。可以将任何数组座位第二个参数。
又如:
var valuesArray = [1,321,21,3,3]; function sum(){ console.log(arguments.length); var max = Math.max.apply(this,arguments); console.log(max); } sum.apply(this,valuesArray);
舍入方法
Math.ceil()、
Math.floor()、
Math.round()三个方法分别遵循下面的规则:
Math.ceil()(向上舍入)
Math.round()(标准舍入-四舍五入)
Math.floor()(向下舍入)
random()
方法
Math.random()方法返回大于等于0 小于1 的一个随机数。如:
console.log(Math.random());
可以利用某个整数范围内随机选择一个数值:
值 = Math.floor(Math.random() * 可能的值的总数 + 第一个可能的值);
比如想要随机选择一个1-10之间的随机数,就可以写成:
var num = Math.floor(Math.random() * 10 + 1);
如果是想随机选择一个2-4之间的随机数,就可以写成:
var num = Math.floor(Math.random() * 3 + 2);
也可以通过一个函数来自动生成随机数,不必计算可能的值的范围。如:
function selectFrom(lowerValue,upperValue){ return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue); }
通过上面这个函数,可以随机访问Array 的数值。如:
var valuesArray = ["BMW","Audi","Benz"];
function selectFrom(lowerValue,upperValue){ return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue); }
var selectValue = valuesArray[selectFrom(0,valuesArray.length - 1)];
console.log(selectValue);
其他方法
见js的Math对象
相关文章推荐
- JavaScript高级程序设计第五章引用类型——单体内置对象
- JavaScript内置对象--单体内置对象(Global、Math)详解
- 深入理解JavaScript单体内置对象
- JavaScript高级程序设计之引用类型之单体内置对象之Global对象第5.7.1讲笔记
- JavaScript单体内置对象:Math对象
- javascript 学习 第11天 单体内置对象 Math
- javascript单体内置对象和方法
- JavaScript学习-单体内置对象
- JavaScript高级程序设计之引用类型之单体内置对象之Math对象第5.7.2讲笔记
- JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)
- JavaScript:单体内置对象
- JavaScript的单体内置对象
- javascript学习笔记 - 引用类型 单体内置对象
- JavaScript常用内置对象及其相应属性和方法(一)
- JavaScript DOM 中的内置对象
- Javascript内置对象总结
- JavaScript内置对象
- JavaScript 中的内置对象
- JavaScript内置对象
- JavaScript内置对象——Array方法