作用域

[翻译]JavaScript秘密花园 - Type Casting,undefined,eval,setTimeout,Auto Semicolon Insertion - 全部完成PDF打包下载

我只是一个虾纸丫 提交于 2020-01-11 06:30:06
JavaScript Garden - 原文 JavaScript Garden - 中文翻译 PDF打包下载 类型转换 JavaScript 是 弱类型 语言,所以会在 任何 可能的情况下应用 强制类型转换 。 // 下面的比较结果是:truenew Number(10) == 10; // Number.toString() 返回的字符串被再次转换为数字10 == '10'; // 字符串被转换为数字10 == '+10 '; // 同上10 == '010'; // 同上 isNaN(null) == false; // null 被转换为数字 0 // 0 当然不是一个 NaN(译者注:否定之否定)// 下面的比较结果是:false10 == 010;10 == '-10'; ES5 提示: 以 0 开头的数字字面值会被作为八进制数字解析。而在 ECMAScript 5 严格模式下,这个特性被 移除 了。 为了避免上面复杂的强制类型转换, 强烈 推荐使用 严格的等于操作符 。虽然这可以避免大部分的问题,但 JavaScript 的弱类型系统仍然会导致一些其它问题。 内置类型的构造函数(Constructors of built-in types) 内置类型(比如 Number 和 String )的构造函数在被调用时,使用或者不使用 new 的结果完全不同。 new

面试时面试官想要听到什么答案 关于es6中let、const、promise、块级作用域的问题

限于喜欢 提交于 2020-01-10 21:59:48
前言 前面写了一篇关于vue方面问题的面试题(面试时面试官想要听到什么答案(关于一些vue的问题)),感谢大家的阅读和意见,今天整理了一下我面试时经常会问到的一些关于es的问题,写了这篇文章,感谢拨冗翻阅拙作,敬请斧正。 因为最近比较忙es6的问题就写了这些,写的比较水了,这些也是我比较常问的还有一些比较碎的内容面试问了但本文未体现只挑选了重点的,class和symbol也是两个重点,因为我了解不深所以就没有去问这两个 - - 下面进入正文,本文会列举一些平时面试时问到的问题和答案,并说明我在当时问到这个问题时所期望对方的回答: es6有哪些属性 问题 常用的es6语法有哪些 问题描述 作为es6问题的开始的一个问题,想通过这个问题知道对方写代码时是否在用es6,是否知道自己用的是es6。但是大部分都说不上来几个(其实突然问我,我也不一定能说很多,当然面试多了之后就可以随口就来),所以我都怀疑这个问题有没有问的必要,对方这个问题其实回答的多少我后面还是该怎么问还是怎么问,也并不影响此次面试。 期望答案 let、const 解构赋值 模板字符串 箭头函数 函数默认值 promise set、map结构 class类 symbol Iterator 和 for…of 循环. 数值的扩展方法 数组的扩展方法 正则的扩展方法 对象的扩展方法 。。。。。。 以上为一些常用到的

Vue学习一之vue初识

▼魔方 西西 提交于 2020-01-10 20:58:24
Vue学习一之vue初识 本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识   vue称为渐进式js框架,这个框架用来做前后端分离的项目,之前我们学习django,知道django是一个MTV模式的web框架,urls--views--templates,模板渲染通过后端的代码来实现数据的渲染,再加上前端一些简单的dom操作来完成网页的开发,当我们做一个复杂的大型的网页的时候,你会发现这种模式作起来会比较复杂,扩展起来也比较困难,因为前后端没有分离开,耦合性太高,牵一发而动全身,所以人们就开始想,如果能有专门的人来开发前端,专门的人来开发后端,前端页面就是前端语言来写,后端服务端代码就是后端服务端代码来写,两者之前只有数据的交流,那么以后页面在进行拓展,进行功能的更新的时候就会变得比较简单,因此vue就诞生了,之前我们前端页面拿到数据都是通过dom操作或者django的模板语言来进行数据的渲染的,有了前端框架vue,就不需要他们了,并且频繁的dom操作,创建标签添加标签对页面的性能是有影响的,那么直接数据驱动视图,将django的MTV中的T交给vue来写,也就是那个templates里面的内容,并且前端的vue拿到了T这部分的工作,MTV前身是MVC

es6 let和const的用法

血红的双手。 提交于 2020-01-10 20:57:40
<template> <div> <el-button @click="click()">let用法:点击看控制台</el-button> <el-button @click="clickConst()">const用法:点击看控制台</el-button> </div></template><script> export default { name: "Base", methods: { click: function () { /*1、let作用域:自己最近的{}*/ let a = 10;//只在let命令所在的代码块内有效(在click方法外引用就会报错)。适用于for循环。 var c = []; for (let i = 0; i < 10; i++) { /*i用var定义,输出结果都是10,也就是说,所有数组c的成员里面的i, 指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是10。*/ c[i] = function () { console.log(i); }; } c[7]();//结果7,使用let定义时i是几输出就是几 //2、变量提升*/ for (let j = 0; j < 3; j++) { // let j = 'abc'; console.log(j);//输出0 1 2 } let bar = 2; console.log(

let和const注意点

泪湿孤枕 提交于 2020-01-10 20:57:19
let 一、块级作用域 下面的代码如果使用 var ,最后输出的是 10 。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所有数组 a 的成员里面的 i ,指向的都是同一个 i ,导致运行时输出的是最后一轮的 i 的值,也就是 10。 如果使用 let ,声明的变量仅在块级作用域内有效,最后输出的是 6。 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 上面代码中,变量 i 是 let 声明的,当前的 i 只在本轮循环有效,所以 每一次循环的 i 其实都是一个新的变量,所以最后输出的是 6 。你可能会问,如果每一轮循环的变量 i 都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值?这是因为 JavaScript

Vue学习笔记之Vue学习前的准备工作

百般思念 提交于 2020-01-10 20:56:04
0x00 起步 1.扎实的 HTML/CSS/Javascript 基本功,这是前置条件。 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法。 不推荐上来就直接用 vue-cli 构建项目,尤其是如果没有 Node/Webpack 基础。 另外在这里大家补充点ES6的语法。 0x01 什么是ECMAScript,以及es6的诞生 1997年 ECMAScript 1.0 诞生 1999年12月 ECMAScript 3.0诞生,它 是一个巨大的成功,在业界得到了广泛的支持,它奠定了JS的基本语法,被其后版本完全继承。直到今天,我们一开始学习JS,其实就是在学3.0版的语法 2000年的ECMAScript4.0是当下ES6的前身,但由于这个版本太过激烈,对ES3做了彻底升级,所以暂时被“和谐”了 2009年12月,ECMAScript5.0版正式发布。ECMA专家组预计ECMAScript的第五个版本会在2013年中期到2018年作为主流的开发标准。2011年6月,ES5.1版发布,并且成为ISO国际标准 2013年,ES6草案冻结,不再添加新的功能,新的功能将被放到ES7中;2015年6月,ES6正式通过,成为国际标准 好的,介绍es6的诞生,我们简单来学几个es6的语法,仅仅的只是为了后面咱们vue的课程做课前准备

es6—let

元气小坏坏 提交于 2020-01-10 20:54:51
变量:    var function es6提供的let const class import定义变量的关键字    备注: 不能忽略函数的形参 函数的私有变量       Var 定义变量 变量提升但是不能定义 给 window 添加一个对应的属性    Function 既可以提前声明 同时还定义了     定义:所谓的定义就是给变量赋值    Let 是 es6 提供的一种声明变量的方式     1. 没有变量提升的功能,在声明之前不能使用(不能提前声明)     2. 不能重复声明     3. 不会给 window 添加属性   作用域    Var 的作用域     Var 声明的变量 作用域分两种    全局作用域     在 window 下声明的变量或者在函数外声明的变量,    局部作用域     在函数内部声明的变量 了解浏览器执行的机制   浏览器在执行的时候,首先开辟一大空间叫 window 下面主要分两个模块,一个叫 栈,一个叫堆。栈用来存放变量的内存地址,堆主要存放代码块。然后浏览器从上 到下执行代码。 Function 申请的变量   Function 声明的变量也会给 window 添加一个属性 属性值是方法。 函数归属问题? 函数归谁,跟他在哪调用无关,跟他在哪定义有关      任何一个函数执行后都有一个返回值,如果写了 return 就返回

回顾之前不牢知识点1

我怕爱的太早我们不能终老 提交于 2020-01-10 19:26:01
1、jstl中的c标签的scope是用来标识变量的作用范围;作用域大小依次为:application>session>request>page(默认)   jsp中处理变量的作用域是:page(默认)>request>session>application 来源: https://www.cnblogs.com/9797ch/p/12177654.html

39 py函数作用域递归函数 变量作用域局部函数 使用lambda

天涯浪子 提交于 2020-01-10 18:11:37
第十课:函数作用域 // python 中的嵌套函数 在一个函数中再定义一个函数 # 小结 : # 函数作用域:因为:python是动态语言,定义变量的时候是不需要指定变量类型的,这样的话,我们在使用或者定义变量的时候作用域会分不清 # 如果在函数中定义一个变量,而且变量名和该函数上一级的作用域中的变量名相同 # 那么在该函数使用该变量时,就会使用局部变量 # 如果在函数中使用一个变量,但该变量在函数中并没有定义,那么会到该函数上一层的作用域去寻找该变量,如果还没有找到,会继续到上一层作用域去寻找,如果没找到会抛出变量未定义异常 x = 10 # 定义了一个变量 并赋值 def fun1(): x = 100 fun1() print(x) # 10 y = 123 def fun2(): print(y) fun2() # 123 在函数中,如果在函数体中没有定义变量的话,首先会在函数体中去找 变量的值,如果没有,就找全局的作用域去找 n = 332 def fun3(): n = 4 print(n) fun3() # 4 这个和第一个例子有什么区别呢? 多了一个 print(n) 其实这个就是局部作用域,在调用函数的时候就已经算出值了。 def fun4(): print(n) n = 100 # fun4() 抛出异常 # 定义一个嵌套函数 m = 10 def fun5(

Spring中bean的scope详解

本秂侑毒 提交于 2020-01-10 02:53:14
如何使用spring的作用域: <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/> 这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。 在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称 prototype), Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此,默认情况下Spring2.0现在有五种类型的Bean。当然,Spring2.0对 Bean的类型的设计进行了重构,并设计出灵活的Bean类型支持,理论上可以有无数多种类型的Bean,用户可以根据自己的需要,增加新的Bean类 型,满足实际应用需求。 1、singleton作用域(scope 默认值) 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把 一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓存