javascript原生对象之单体内置对象(Global、Math)

[1]Global
[1.1]定义:Global对象是一个终极的“兜底儿对象”,不属性于任何其他对象的属性和方法,最终都是它的属性和方法
[注意]所有在全局作用域中定义的属性和函数都是Global对象的属性。诸如isNaN()、isFinite()、parseInt()、parseFloat()等实际上都是Global对象的方法

[1.2]编码方法
  [1.2.1]encodeURI():对整个URI进行编码,用特殊的UTF-8替换所有无效的字符
    [注意1]encodeURI()的不编码字符有82个:! # $ & ‘ ( ) * + , - . / : ; = ? @ _ ~ 0-9 a-z A-Z
  [1.2.2]encodeURIComponent():对URI的某一段进行编码(常用于GET方法传递参数),用特殊的UTF-8替换所有无效的字符
    [注意1]encodeURIComponent()的不编码字符有71个:! ‘ ( ) * - . _ ~ 0-9 a-z A-Z
    [注意2]一般来说,使用encodeURIComponent()比encodeURI()要多,因为在实践中更常见的是查询字符串参数而不是对基础URI编码
  [1.2.3]decodeURI():解码encodeURI()
  [1.2.4]decodeURIComponent():解码encodeURIComponent()

var uri = "http://www.wrox.com/illegal value.htm#start";
console.log(encodeURI(uri));//http://www.wrox.com/illegal%20value.htm#start
console.log(encodeURIComponent(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start
var uri = ‘http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start‘;
console.log(decodeURI(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start
console.log(decodeURIComponent(uri));//http://www.wrox.com/illegal value.htm#start

  [1.2.5]escape:对字符串进行编码,将字符的unicode编码转化为16进制序列

    [注意1]escape()的不编码字符有69个:* + - . / @ _ 0-9 a-z A-Z
    [注意2]ECMAScript3中反对escape()的使用,并建议用encodeURI和encodeURIComponent代替,不过escape()依然被广泛的用于cookie的编码,因为escape()恰好编码了cookie中的非法字符并且对路径中常出现的“/”不进行编码。
  [1.2.6]unescape():解码escape()

[1.3]eval():像一个完整的ECMAScript解析器,只接受一个参数,即要执行的JavaScript字符串。当解析器发现代码中调用eval()方法时,它会将传入的参数当作实际的ECMAScript语句来解析,然后把执行结果插入到原位置
  [注意]在严格模式下,外部访问不到eval()中创建的任何变量或函数,为eval赋值也会导致错误
  [tips]能够解释字符串的能力非常强大,但也非常危险。当用它执行用户输入数据时,可能会有恶意用户输入威胁站点或应用程序字符的代码,就是所谓的代码注入

[1.4]Global的所有属性(共18个)
undefined NaN Infinity Object Array Function Boolean String Number Date RegExp Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
  [tips]禁止给undefined、NaN和Infinity赋值

[1.5]window对象:Web浏览器将Global全局对象作为window对象的一部分加以实现。因此,在全局作用域中声明的所有变量和函数都成为了window对象的属性

var color = ‘red‘;
function sayColor(){
    console.log(window.color);
}
window.sayColor();//red

[2]Math

[2.1]属性
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的平方根

console.log(Math.E);//2.718281828459045
console.log(Math.LN10);//2.302585092994046
console.log(Math.LN2);//0.6931471805599453
console.log(Math.LOG2E);//1.4426950408889634
console.log(Math.LOG10E);//0.4342944819032518
console.log(Math.PI);//3.141592653589793
console.log(Math.SQRT1_2);//0.7071067811865476
console.log(Math.SQRT2);//1.4142135623730951

[2.2]方法

Math.min()          返回一组数字中的最小值
Math.max()           返回一组数字中的最大值
Math.ceil(num)           向上舍入为整数
Math.floor(num)         向下舍入为整数
Math.round(num)       四舍五入为整数
Math.random()           返回大于等于0小于1的一个随机数
Math.abs(num)        返回num的绝对值
Math.exp(num)          返回Math.E的num次幂
Math.log(num)           返回num的自然对数
Math.pow(num,power)      返回num的power次幂
Math.sqrt(num)        返回num的平方根
Math.acos(x)          返回x的反余弦值
Math.asin(x)           返回x的反正弦值
Math.atan(x)          返回x的反正切值
Math.atan2(y,x)        返回y/x的反正切值
Math.cos(x)            返回x的余弦值
Math.sin(x)           返回x的正弦值
Math.tan(x)            返回x的正切值

console.log(Math.min(1,2,3));//1
console.log(Math.max(1,2,3));//3
console.log(Math.ceil(12.6));//13
console.log(Math.floor(12.6));//12
console.log(Math.round(12.6));//13
console.log(Math.random());//0.741887615993619
console.log(Math.abs(-10));//10
console.log(Math.exp(0));//1
console.log(Math.log(10));//2.302585092994046
console.log(Math.pow(10,2));//100
console.log(Math.sqrt(100));//10
console.log(Math.acos(1)*180/Math.PI);//0
console.log(Math.asin(1)*180/Math.PI);//90
console.log(Math.atan(1)*180/Math.PI);//45
console.log(Math.atan2(1,1)*180/Math.PI);//45
console.log(Math.cos(60*Math.PI/180));//0.5000000000000001
console.log(Math.sin(30*Math.PI/180));//0.49999999999999994
console.log(Math.tan(45*Math.PI/180));//0.9999999999999999    

  [注意]最大值和最小值方法常用于避免多余的循环和在if语句中确定一组数的最大值

  [tips1]找到数组中的最大或最小值

var values = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,values);//8

  [tips2]从某个整数范围内随机选择一个值

  value = Math.floor(Math.random()*可能值的总数 + 第一个可能的值)
  [tips3]通过最小值和最大值随机选择一个值

function selectFrom(lowerValue,upperValue){
    var choices = upperValue - lowerValue + 1;
    return Math.floor(Math.random()*choices + lowerValue);
}
var num = selectFrom(2,10);
alert(num);
时间: 2024-10-03 21:54:33

javascript原生对象之单体内置对象(Global、Math)的相关文章

javascript学习笔记 - 引用类型 单体内置对象

七 单体内置对象 1.Global对象 不属于任何对象的属性和方法,都归于它.全局作用域中定义的变量.函数,都属于Global对象 1.1 URI编码  encodeURI <=>decodeURI 不会编码本身属于uri的特殊字符 encodeURIComponent  <=> decodeURIComponet 将所有非标准字符进行编码 1.2 window对象 在web浏览器中,一般是将Global对象当作window对象的一部分.因此全局作用域中的变量.函数,都可以通过wi

js之数据类型(对象类型——单体内置对象——JSON)

JSON(Java Script Object Notation)使用JavaScript语法,是用于存储和传输数据的格式,通常用于服务端向网页传递数据.JSON格式仅仅是一个文本,文本可以被任何编程语言读取及作为数据格式传递(一种类似js中的对象格式的字符串,json它是一个字符串,只不过长的像对象)从上面的描述中我们可以看到如下知识 JSON的规则:数据放在了一对引号当中,用{}或者是[]括起来:里面的每一个数据都是以键值对表示(key:value);key必须放双引号,单引号不行:每个数据

JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)

基本包装类型 为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean.Number和String.这些类型与其它引用类型相似,但同时也具有与各自的基本类型相应的特殊行为.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据.如: var s1 = "some text"; var s2 = s1.substring(2); 这个例子中的变量s1包含一个字符串,字符串当然是基本类型值.而下

高程5.7单体内置对象 5.8小结

内置对象的定义:由ECMAScript实现提供的, 不依赖于鹤环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 开发人员不必显式地实例化内置对象,因为它们已经实例化了. 前面介绍了大多数内置对象,如Object,Array和String.ECMA-262还定义了两个单体内置对象:Global和Math. 5.7.1 Global对象 没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global(全局)对象的属性. 诸如isNaN(),isFinite(),pa

第五章 单体内置对象

ECMA-262 对内置对象的定义是:"由ECMAScript 实现提供的.不依赖于宿主环境的对象,这些对象在ECMAScript 程序执行之前就已经存在了."意思就是说,开发人员不必显式地实例化内置对象,因为它们已经实例化了. 我们已经介绍了大多数内置对象,例如Object.Array 和String.ECMA-262 还定义了两个单体内置对象:Global 和Math. 7.1 Global对象 Global(全局)对象可以说是ECMAScript 中最特别的一个对象了,因为不管你

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.

单体内置对象的理解

1.有ECMAScript提供的,不依赖于宿主环境,在程序执行之前就已经存在的对象,叫内置对象,例如Object,Array,String 也就是说,实际使用时不用实例化内置对象,因为他们已经实例化了 2.ECMAScript定义了两个单体内置对象Global和Math a.Global对象 所有在全局作用域中定义的变量和函数,都是Global对象的属性和方法,也就是说,不属于任何对象的属性和方法,都是Global的属性和方法,例如eval()和parseInt() b.Math对象 Math对

DOM笔记(九):引用类型、基本包装类型和单体内置对象

一.Array 1 .创建数组的方式 //Array构造函数(可以去掉new)var colors0 = new Array();var colors1 = new Array(20);var colors3 = new Array("red","blue","green");//数组字面量var colors4 = ["red","blue","green"];var colors5 

RegExp类型,单体内置对象

1.RegExp类型:  1)什么是正则表达式:RegExp    --是一种规则,模式    --强大的字符串匹配工具    --创建:    --使用RegExp构造函数创建:var re=new RegExp('a','i');    --使用字面量创建:var re=/a/i;    //i--ignore表示忽略大小写 2)正则表达式里面的字符:    1)修饰符      --i:执行对大小写不敏感的匹配.      --g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)