作用域

// 1.

fn()
function fn () {
console.log(12)
}
var as = function () {
console.log(45)
}

// 2.

var a = 12;
function fn () {
console.log(a)
var a = 45;
console.log(a)
}
fn()

//3.

var a = 12;
function fn () {
console.log(a)
a = 45;
console.log(a)
}
fn()

//4.

function fn () {
console.log(11)
function ff () {
console.log(22)
}
ff()
}
fn()

//5.

function fn () {
console.log(5)
fn()
}
fn()

//6.

function fn () {
console.log(12)
}
var as = fn()
console.log(as)

//7.

function fn () {
console.log(12);
return 45;
console.log(456)
}
var as = fn()

//8.

var a = 12;
function fn () {
console.log(a);
return 4;
var a = 45;
}
fn()

// 9.

var a = 45;
function fn () {
console.log(a)
}
fn()

// 10.

var a = 45;
function fn (a) {
console.log(a)
}
fn(5)

// 11.

var a = 123;
function fun () {
alert(a);
}
fun()

// 12.

var a = 123;
function fun () {
alert(a);
var a = 456;
}
fun();
alert(a);

// 13.

var a = 123;
function fun () {
alert(a);
a = 456;
}
fun()
alert(a)

// 14.

var a = 123;
function fun (a) {
alert(a)
a = 456;
}
fun()
alert(a)

// 15.

var a = 123;
function fun (a) {
alert(a)
a = 456
}
fun()
alert(a)
 

//16.

function makeNoSense (x) {
this.x = x;
}
makeNoSense(5);
console.log(x);
function test () {
this.x = 1;
alert(this.x);
}
test();
 
 

This

//1.

var name = '222';
var a = {
name : '111',
say : function () {
console.log(this.name)
}
}
var fun = a.say;
fun() //???
a.say() //???
var b = {
name : '333',
say : function (fun) {
fun();
}
}
b.say(a.say); //???
b.say = a.say;
b.say() //???
 

//2.

var val = 1
var obj = {
val : 2,
dbl : function() {
var val = 45;
console.log(this); //指向谁?
this.val *= 2;
console.log(this.val); //??
console.log(val); //??
}
}
var fn = obj.dbl
fn()

//3.

var x = 12;
function test() {
console.log(this.x)
}
test() //??

//4.

var x = 12;
function test() {
console.log(this.x)
}
var obj={
x:45,
ss:test
}
obj.ss() //??

//5.

var x = 12;
function test() {
console.log(this.x)
}
var obj = {
x:45,
ss:function(){
console.log(this)
test()
}
}
obj.ss() //??

//6.

var val = 1
var obj = {
val : 2,
dbl : function() {
// var val = 45;
console.log(this); // 指向谁
this.val *= 2;
console.log(this.val); // ???
console.log(val); // ???
}
}
var ff = obj.dbl()

 

原型

待定

从零开始的全栈工程师——js篇(作用域 this 原型笔试题练习)的更多相关文章

  1. 从零开始的全栈工程师——js篇2.5

    数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...

  2. 从零开始的全栈工程师——js篇2.1(js开篇)

    JS开篇 一.js介绍 全称 javascript 但不是java 他是一门前台语言 而java是后台语言js作者 布兰登·艾奇 前台语言:运行在客户端的后台语言:跟数据库有关的 能干什么?    页 ...

  3. 从零开始的全栈工程师——js篇(闭包)

    闭包是js中的一大特色,也是一大难点.简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量. 闭包的三大特点为: 1.函数嵌套函数 2.内部函数可以访问外部函数的变量 3.参数和变量不会 ...

  4. 从零开始的全栈工程师——js篇2.12(面向对象)

    面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object ...

  5. 从零开始的全栈工程师——js篇2.6

    函数 Var 是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成. Var可以在内存模块提前(js代码执行前)完成所以有变量提升这个功能. 因为a没有带var,所以不存在变量 ...

  6. 从零开始的全栈工程师——js篇2.4

    条件语句与循环语句 变量提升: 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window ,window分两个模块,一个叫内存模块,一个叫运行模块,内存模块找到当前作 ...

  7. 从零开始的全栈工程师——js篇(js的异步)

    js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...

  8. 从零开始的全栈工程师——js篇2.21(事件对象 arguments 阻止事件默认行为兼容 事件委托 事件源对象)

    一.事件对象 1.常用的事件2.每个元素身上的事件都是天生存在的 不需要我们去定义 只需要我们给这个事件绑定一个方法 当事件触发的时候就会执行这个方法 3.事件绑定的写法 ①div.onclick=f ...

  9. 从零开始的全栈工程师——js篇2.20(事件对象 冒泡与捕获)

    一.复习 面向对象 1)单例模式 2)工厂模式 3)构造函数 ①类js天生自带的类 基类object function array number math boolean date regexp st ...

随机推荐

  1. git 增量打包

    git diff f506693 ccc253c3 --name-only | xargs tar -czvf update.tar.gz

  2. Express全系列教程之(十):jade模板引擎

    一.前言 随着前端业务的不断发展,页面交互逻辑的不断提高,让数据和界面实现分离渐渐被提了出来.JavaScript的MVC思想也流行了起来,在这种背景下,基于node.js的模板引擎也随之出现. 什么 ...

  3. 第一册:lesson 125.

    原文: Tea for two. question:Does Susan have tea by herself? Can't you come in and have tea now Piter? ...

  4. Github常见命令整理

    常见命令: 将文件增加到index/stage暂存区: git add filename 将暂存的文件更新到本地库中:git commit -m "备注内容" 将本地库更新到远程库 ...

  5. elasticsearch 相关命令

    ubuntu server 启动命令:$ ./bin/elasticsearch 后台运行:$ ./bin/elasticsearch -d 查看当前进程:$ jps 启动后检查是否成功命令:$ cu ...

  6. div css 伪类 不固定图片大小 居中, css div 实现三角形

    div css 伪类 不固定图片大小 居中 <style> .pic_box{width:300px; height:300px; background-color:#beceeb; fo ...

  7. 6.SpringMVC2

    1.视图解析 当客户端发出请求后,交由SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中对该请求的最合理的映射, ...

  8. 练习五十六:for循环

    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换 方法一: def o ...

  9. spring MVC设置不拦截静态资源

    问题产生: 因为我们在web.xml中写了 拦截所有请求,当然包括了静态资源,所以页面需要引用css或js的话,该请求也会被拦截,例如: 在style.css中写一个简单样式,加个背景颜色  body ...

  10. Python import搜索路径相关

    import搜索路径 在当前目录下搜索该模块 在环境变量 PYTHONPATH 中指定的路径列表中依次搜索 在 Python 安装路径的 lib 库中搜索 查看当前的搜索路径 import sys p ...