当前位置: 首页 > news >正文

理解JavaScript【转】

第一题

if (!("a" in window)) {
    var a = 1;
}
alert(a);

第二题

var a = 1,
    b = function a(x) {
        x && a(--x);
    };
alert(a);

第三题

function a(x) {
    return x * 2;
}var a;
alert(a);

第四题

function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
}
b(1, 2, 3);

第五题

function a() {
    alert(this);
}
a.call(null);

 

第一题:答案undefined
js函数正式执行前会先处理函数声明、形参、变量声明(创建变量但是不赋值,赋值在代码执行阶段)。本例先在代码执行前处理变量声明,也就是解析器先弄一个变量a,但是没到函数执行呢,还不能给他赋值。所以有了变量a,注意是变量,全局变量相当于window的属性(其实不同,比如属性可以delete)所以”a” in window为true。

如果本题改为

if (!("a" in window)) {
    a = 1;
}

 

将不会优先处理变量声明,结果会不同。
作为对比可以改为如下,同样根据上面的说明作答,大家自己试试。

第二题:答案1

只要记住一点,命名函数表达式的名字仅在所定义的函数内有效,由ecmascript作用域链的构建规则决定。

 

第三题:答案 是一个函数

按照第一题的解释中所说,先处理函数和声明和变量声明,所以a是一个函数,而var a不会改变赋值嘛,此后又没有赋值,所以a一直都是函数。

 

第四题:答案10

js每一个函数内都有一个隐含的arguments变量,是一个类数组结构,依次记录了参数的值,与参数同步更改。

 

第五题:答案window

没啥可说的,默认用window。

 都答对了么?

 

转载于:https://www.cnblogs.com/allyh/p/10680141.html

相关文章:

  • python入门 第一节
  • 1255: 打怪升级(Java)
  • 随笔2
  • JavaSE--日志
  • 大二下周总结(7)
  • 前段支持
  • 二:Nexus知识
  • python-for显示奇偶数
  • 力扣——用栈实现队列
  • 02 Anaconda的介绍,安装记以及使用
  • java集合之间的关系
  • java 坑总结
  • Swing 混合布局
  • vue 前端框架 (二) 表格增加搜索
  • 城市经纬度 json
  • 【笔记】你不知道的JS读书笔记——Promise
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Intervention/image 图片处理扩展包的安装和使用
  • js写一个简单的选项卡
  • Python爬虫--- 1.3 BS4库的解析器
  • Python实现BT种子转化为磁力链接【实战】
  • springboot_database项目介绍
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Twitter赢在开放,三年创造奇迹
  • 构造函数(constructor)与原型链(prototype)关系
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 听说你叫Java(二)–Servlet请求
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • gunicorn工作原理
  • Spring Batch JSON 支持
  • ​configparser --- 配置文件解析器​
  • ​你们这样子,耽误我的工作进度怎么办?
  • #define
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (八十八)VFL语言初步 - 实现布局
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (一)基于IDEA的JAVA基础1
  • (转)重识new
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .form文件_SSM框架文件上传篇
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net 7 上传文件踩坑
  • .NET Core 成都线下面基会拉开序幕
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)