javascript类型系统之Window

目录

[1]引用 [2]特性 [3]属性 [4]方法 编码方法 eval() 数字方法

前面的话

  window对象是Web浏览器中javascript的一个终极兜底儿对象,在作用域中处于最末端,是一个包含所有对象的对象。所有在全局作用域中定义的属性和函数都是window对象的属性

var myStringVar = ‘myString‘;
var myFunctionVar = function(){};
console.log(‘myStringVar‘ in window);//true
console.log(‘myFunctionVar‘ in window);//true

引用

  通常有两种引用window对象的方法。第一种是简单引用赋予window对象的名称;第二种是在全局作用域中使用this关键字

var foo =‘bar‘;
windowRef1 = window;
windowRef2 = this;
console.log(windowRef1,windowRef2);//输出window对象的引用
console.log(windowRef1.foo,windowRef2.foo);//‘bar‘ ‘bar‘

特性

  window对象是隐式的,通常不显式引用;即使window对象显式声明,它也是隐式的,因为window对象在作用域链中是最后一个

//window.alert()和alert()语句基本上是相同的
var foo = {//window对象在这里是隐式的,window.foo
    fooMethod: function(){
        alert(‘foo‘ + ‘bar‘);//window对象在这里是隐式的,window.alert
        window.alert(‘foo‘ + ‘bar‘);//显式调用window对象,效果一样
    }
}
foo.fooMethod();//window对象在这里是隐式的,window.foo.fooMethod()

属性

  window对象共有18个属性

undefined NaN Infinity
Boolean String Number Object Array Function Date RegExp
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError    

  [注意]禁止给undefined、NaN和Infinity赋值

方法

  Javascript附带一些预定义函数,被认为是window对象的方法

编码方法

encodeURI():对整个URI进行编码,用特殊的UTF-8替换所有无效的字符

  encodeURI()的不编码字符有82个:

! # $ & ‘ ( ) * + , - . / : ; = ? @ _ ~ 0-9 a-z A-Z

encodeURIComponent():对URI的某一段进行编码(常用于GET方法传递参数),用特殊的UTF-8替换所有无效的字符

  一般来说,使用encodeURIComponent()比encodeURI()要多,因为在实践中更常见的是查询字符串参数而不是对基础URI编码。encodeURIComponent()的不编码字符有71个:

!  ‘ ( ) * - . _ ~ 0-9 a-z A-Z

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

  ES3中反对escape()的使用,并建议用encodeURI和encodeURIComponent代替,不过escape()依然被广泛的用于cookie的编码,因为escape()恰好编码了cookie中的非法字符并且对路径中常出现的“/”不进行编码。escape()的不编码字符有69个:

* + - . / @ _ 0-9 a-z A-Z

decodeURI():解码encodeURI()

decodeURIComponent():解码encodeURIComponent()

unescape():解码escape()

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
console.log(escape(uri));//http%3A//www.wrox.com/illegal%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
console.log(unescape(uri));//http://www.wrox.com/illegal value.htm#start

eval()

  eval()方法像一个完整的ECMAScript解析器,只接受一个参数,即要执行的JavaScript字符串。当解析器发现代码中调用eval()方法时,它会将传入的参数当作实际的ECMAScript语句来解析,然后把执行结果插入到原位置。eval()方法能够解释字符串的能力非常强大,但也非常危险。当用它执行用户输入数据时,可能会有恶意用户输入威胁站点或应用程序字符的代码,就是所谓的代码注入

  [注意]在严格模式下,外部访问不到eval()中创建的任何变量或函数,为eval赋值也会导致错误

数字方法

  Window对象下还有isFinite()、isNaN()、parseFloat()、parseInt()这四个关于数字的方法

  关于它们的详细信息移步至此

时间: 2024-11-07 11:58:40

javascript类型系统之Window的相关文章

JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向表示文档元素的HTMLElement对象. Window对象是以全局对象的形式存在于作用域链的最上层,这就意味着HTML文档中使用的id属性会成为可以被脚本访问的全局变量. 如: <button id="but"/> 就可以通过全局变量but来引用此元素. 2.多窗体窗口(if

Jquery中$(document).ready() 和 JavaScript中的window.onload方法 比较

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个(最后一个)       

Javascript学习--------认识window窗口对象

window对象: Window 对象表示浏览器中打开的窗口. 可以通过window对象设置窗口的大小,位置等. 还可以控制是否加载网页等. window对象集合: 集合 描述 frames[] 返回窗口中所有命名的框架. 该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>.属性 frames.length 存放数组 frames[] 中含有的元素个数.注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数

Javascript 中的window.parent ,window.top,window.self 详解

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口. window.self 功能:是对当前窗口自身的引用.它和window属性是等价的. 语法:window.self 注:window.self.window.self是等价的. window.top 功能:返回顶层窗口,即浏览器窗口. 语法:window.top 注:如果窗

JavaScript函数与Window对象

 JavaScript函数与Window对象 一.函数的使用 函数的含义:类似于Java中的方法,是完成特定任务的代码语句块   ◆常用系统函数: parseInt ("字符串")    将字符串转换为整型数字    如: parseInt ("86")将字符串"86"转换为整型值86 parseFloat("字符串")    将字符串转换为浮点型数字    如: parseFloat("34.45")将字

jquery中的$(document).ready()、JavaScript中的window.onload()以及body中的onload()的区别

  body中的onload()和window.onload以及$(document).ready()的区别: 1.前两者都表示当页面加载元素(包括图片等信息)完毕后执行的操作,而且两者在各种浏览器中都兼容,而$(document).ready()表示的是JQuery中的一个方法因而只有在支持jQuery的浏览器中才适用,同时该方法是在当页面的dom节点加载完毕后就执行,无需等待页面中的图片等加载完成. 2.当代码中同时存在body中的onload()和window.onload()要注意的 :

Javascript之BOM(window对象)

摘自Rocky Ren 分享到 Javascript之BOM(window对象) ECMAScript是JavaScript的核心,但在web使用JavaScript,那么BOM(浏览器对象模型)才是真正的核心. BOM的核心对象是window,它表示浏览器的一个实例. 在浏览器中,window对象既是JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象.也就是说,在网页中定义的任何一个变量.对象和函数以window作为其Global对象. 1.全局作用域

JavaScript强化教程——Window Location

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— Window Location Window Location window.location 对象在编写时可不使用 window 这个前缀. 一些例子: location.hostname 返回 web 主机的域名location.pathname 返回当前页面的路径和文件名location.port 返回 web 主机的端口 (80 或 443)location.protocol 返回所使用的

Javascript中封装window.open的例子

对window.open进行封装, 使其更好用, 且更兼容, 很多人说window.open不兼容,其实不是, 因为不能直接执行, 必须通过用户手动触发才行;看代码: 代码如下 复制代码 var openWindow = function(url, options) { var str = ""; if (options) { options.height = options.height || 420; options.width = options.width || 550; op