作用域

// 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. THINKPHP 框架的模板技术

    //echo C('name'); App/Action/IndexAction.class.php文件夹下的 URL模式 //输出URL模式//echo C('URL_MODEL'),'<br ...

  2. winform datagridview不显示滚动条

    datagridview 数据行数已经超出表格显示范围了,为什么右侧没有滚动条呢? 这个其实不是DataGridView的问题,实际上滚动条是出现了的,但被其他东西挡住了.如果网格是放在panel上的 ...

  3. 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(斜率优化)

    题意 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 ...

  4. P3879 [TJOI2010]阅读理解

    \(\color{#0066ff}{ 题目描述 }\) 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. \( ...

  5. luogu1632 点的移动

    其实只需要开三重循环 根据OI中的一个重要的原理 给定一个序列a,求一个数x使得\(\sum |a_i-x|\)最小,那么这个数是序列a的中位数 证明略 然后既然是中位数,一定是数列中的数,类比到这题 ...

  6. 解决spring使用动态代理

    解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ... 转 ...

  7. Python文件操作,异常语法

    1.文件 2.异常 1.文件的输入输出 #1.打开文件 open 函数open(file,[option])#file 是要打开的文件#option是可选择的参数,常见有 mode 等​#2.文件的打 ...

  8. Linux中***配置

    Ubuntu系统下: 1.执行如下命令 sudo apt install shadowsocks polipo 2.创建 shadowsocks.json 配置文件,放在你想放的位置 { " ...

  9. Java中利用JFrame创建窗体

    1. 一个简单例子: public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame(); ...

  10. Java 类型转换(int->String)

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...