一、下代码都输出什么?
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可以看到
window.open(URL, name, features, replace)
// 这是一个打开新页面的函数接口,有四个参数,其中第二个 name 参数其实设
//置的就是 window.name 的值
window.open('', 'WindowName1')
// 会打开一个新的空白页面
// 然后在新页面打开控制台打印一下 name 属性
console.log(name)
// 'WindowName1'
需要注意的一点是, window.name 不管赋什么值,它都会自动转化为 string 类型。
所以题目中虽然给window赋值了一个Number类型的5,输出的确实String类型的’5’
// 例如:
console.log(user.ref);
name = { a: 1 }
console.log(name)
// [Object Object]
name = [1,4,7]
console.log(name)
// 1,4,7