知道面试题为什么都爱给 window 加 name 属性吗?

简介: 好了直接上代码。以下代码输出什么?console.log(name)console.log(window.name)console.log(typeof window.name)var name = 5console.log(name)console.log(typeof name)我觉得大部分人都会答错。

好了直接上代码。

以下代码输出什么?

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

目录
相关文章
|
前端开发
前端面试题:1.页面加载完成(onload)之前触发的事件;2.History,Location,Window,Navigation的区别;3.e.target和e.currentTarget的区别
★Navagator:提供有关浏览器的信息 ★Window: Window对象处于对象层次的最顶层, 它提供了处理Navagator窗口的方法和属性 ★Location:提供了与当前打开的URL-工作的方 法和属性,是一个静态的对象 ★History:提供了与历史清单有关的信息 ★Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用
227 0
|
Android开发 数据格式 XML
Android 面试(八):说说 Activity、View、Window 之间的关系吧
连载内容镇楼:Android 面试(一):说说 Android 的四种启动模式Android 面试(二):如何理解 Activity 的生命周期Android 面试(三):用广播 BroadcastReceiver 更新 UI 界面真的好吗?Andro...
1953 0
|
1天前
|
缓存 网络协议 Java
Android面试题之Java网络通信基础知识
Socket是应用与TCP/IP通信的接口,封装了底层细节。网络通信涉及连接、读写数据。BIO是同步阻塞,NIO支持多路复用(如Selector),AIO在某些平台提供异步非阻塞服务。BIO示例中,服务端用固定线程池处理客户端请求,客户端发起连接并读写数据。NIO的关键是Selector监控多个通道的事件,减少线程消耗。书中推荐《Java网络编程》和《UNIX网络编程》。关注公众号AntDream了解更多。
11 2
|
1天前
|
存储 缓存 Java
面试官:Java中缓冲流真的性能很好吗?我看未必
【6月更文挑战第9天】面试官:Java中缓冲流真的性能很好吗?我看未必
21 3
|
13天前
|
存储 算法 Java
JAVA后端开发面试题库
JAVA后端开发面试题库
20 1
|
17天前
|
缓存 安全 Java
【Java面试——并发基础、并发关键字】
随着硬件指令集的发展,我们可以使用基于冲突检测的乐观并发策略: 先进行操作,如果没有其它线程争用共享数据,那操作就成功了,否则采取补偿措施(不断地重试,直到成功为止)。这种乐观的并发策略的许多实现都不需要将线程阻塞,因此这种同步操作称为非阻塞同步。 乐观锁需要操作和冲突检测这两个步骤具备原子性,这里就不能再使用互斥同步来保证了,只能靠硬件来完成。硬件支持的原子性操作最典型的是: 比较并交换(Compare-and-Swap,CAS)。CAS 指令需要有 3 个操作数,分别是内存地址 V、旧的预期值 A 和新值 B。当执行操作时,只有当 V 的值等于 A,才将 V 的值更新为 B。
|
25天前
|
SQL 存储 Java
致远互联java实习生面试
致远互联java实习生面试
34 0
|
25天前
|
Java
java面试基础 -- 普通类 & 抽象类 & 接口
java面试基础 -- 普通类 & 抽象类 & 接口
27 0
|
25天前
|
存储 安全 Java
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
30 0
|
25天前
|
Java
java面试基础 -- 方法重载 & 方法重写
java面试基础 -- 方法重载 & 方法重写
14 0