好了直接上代码。
以下代码输出什么?
console.log(name)
console.log(window.name)
console.log(typeof window.name)
var name = 5
console.log(name)
console.log(typeof name)
我觉得大部分人都会答错。
想一下,然后看下面的答案。
console.log(name)
console.log(window.name)
// ''
console.log(typeof window.name)
// string
var name = 5
console.log(name)
// '5'
console.log(typeof name)
// string
???为什么会是这样的结果呢?
答案就是,window.name 是一个 window 对象的内置属性。
window.open(URL, name, features, replace)
// 这是一个打开新页面的函数接口,有四个参数,其中第二个 name 参数其实设置的就是 window.name 的值
简单测试一下,
window.open('', 'newWindow')
// 会打开一个新的空白页面
// 然后在新页面打开控制台打印一下 name 属性
console.log(name)
// 'newWindow'
这里就清楚明白了,
需要注意的一点是, window.name 不管给它赋什么值,它都会转化为 string 类型。
// 例如这样
var name = { a: 0 }
console.log(name)
// [Object Object]
name = [0, 2, 5]
console.log(name)
// 0,2,5
原文地址:http://blog.csdn.net/qq_25243451/article/details/78933282