知道面试题为什么都爱给 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

目录
相关文章
|
2月前
|
消息中间件 前端开发 Android开发
Android面试题自定义View之Window、ViewRootImpl和View的三大流程
Android开发中,View的三大核心流程包括measure(测量)、layout(布局)和draw(绘制)。MeasureSpec类在测量过程中起到关键作用,它结合尺寸大小和模式(EXACTLY、AT_MOST、UNSPECIFIED)来指定View应如何测量。onMeasure方法用于自定义View的测量,布局阶段,ViewGroup调用onLayout确定子元素位置,而draw阶段按照特定顺序绘制背景、内容、子元素和装饰。整个流程始于ViewRootImpl的performTraversals,该方法触发测量、布局和绘制。
36 0
|
前端开发
前端面试题:1.页面加载完成(onload)之前触发的事件;2.History,Location,Window,Navigation的区别;3.e.target和e.currentTarget的区别
★Navagator:提供有关浏览器的信息 ★Window: Window对象处于对象层次的最顶层, 它提供了处理Navagator窗口的方法和属性 ★Location:提供了与当前打开的URL-工作的方 法和属性,是一个静态的对象 ★History:提供了与历史清单有关的信息 ★Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用
254 0
|
Android开发 数据格式 XML
Android 面试(八):说说 Activity、View、Window 之间的关系吧
连载内容镇楼:Android 面试(一):说说 Android 的四种启动模式Android 面试(二):如何理解 Activity 的生命周期Android 面试(三):用广播 BroadcastReceiver 更新 UI 界面真的好吗?Andro...
1999 0
|
1月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1月前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
1月前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
1月前
|
Java
【Java基础面试三】、说一说你对Java访问权限的了解
这篇文章介绍了Java中的四种访问权限:private、default(无修饰符时的访问权限)、protected和public,以及它们分别在修饰成员变量/方法和类时的不同访问级别和规则。
【Java基础面试三】、说一说你对Java访问权限的了解
|
1月前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
1月前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。
|
1月前
|
Java
【Java基础面试三十八】、请介绍Java的异常接口
这篇文章介绍了Java的异常体系结构,主要讲述了Throwable作为异常的顶层父类,以及其子类Error和Exception的区别和处理方式。