在项目开发过程中,在使用变量声明时,如果不注意,可能会造成类型错误比如: Uncaught (in promise) TypeError: Assignment to constant variable.未捕获的类型错误:赋值给常量变量. 原因:我们使用 const 定义了变量且存在初始值. 后面又给这个变量赋值,所以报错了. ES6 标准引入了新的关键字 const 来定义常量,const 与 let 都具有块级作用域: 使用 const 定义的常量,不能修改它的值,且定义的常量必须赋初值:l…
情况一: a 直接引用外部的,正常运行 def toplevel(): a = 5 def nested(): print(a + 2) # theres no local variable a so it prints the nonlocal one nested() return a 情况二:创建local 变量a,直接打印,正常运行 def toplevel(): a = 5 def nested(): a = 7 # create a local variable called a w…
print: 3.13 PI 3.14…
在创建如下代码时报出此错:TypeError: d.read is not a function Ext.define('shebyxgl_sheb_model', { extend: 'Ext.data.Model', fields: [ 'shebid', 'shebname' ] }); var sheb_store = Ext.create('Ext.data.Store', { model: 'shebyxgl_she_model',//model名称引用错误,少了一个字母b prox…
由于项目的需求,需要做一种迁徙效果, 最后我们采用了组件化开发,可以说这个坑自己一个人踩,有点累,但也收获不少. vue-cli +echarts-amap集成echarts和高德地图,出现报错,错误如下 webpack-internal:///./node_modules/vue/dist/vue.esm.js: [Vue warn]: Error in mounted hook: "TypeError: Cannot read property 'dataToPoint' of null&q…
环境 eclipse + pydev2.8.2 + python 3.5.1/python 2.7.11 + wxpython3.0 出现原因:原先默认解释器设置为python2,重装了pydev之后未进行设置,变为pyhon3,导致原来代码能够正常调试运行以及跳转至定义,却始终报错. 解决方法:修改默认解释器与库为python2即可.…
1,将Stuct换为class 2,使用中间变量, 如Point p=new Point(x,y); this.Location=p; 而不能直接给struct赋值,因为值类型是不能改变的,必须生成新的值类型…
SyntaxError是解析代码时发生的语法错误 // 变量名错误  var 1a;  // 缺少括号  console.log 'hello'); (2)ReferenceError ReferenceError是引用一个不存在的变量时发生的错误. unknownVariable  // ReferenceError: unknownVariable is not defined 另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值. console.log()…
数据类型 JavaScript 是 弱类型 语言,但并不是没有类型,JavaScript可以识别下面 7 种不同类型的值: 基本数据类型 Boolean Number String null undefined Symbol Object Array RegExp Date Math ... 可以使用 typeof 判断数据类型,操作符返回一个字符串,但并非返回的所有结果都符合预期 typeof false // "boolean" typeof .2 // "number&…
一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷: const foo='foo'; foo='bar';//TypeError: Assignment to constant variable. 上例声明了一个基本类型的常量,如过试图修改初始值则会报错:如果是引用类型的值同样适用,但是有一点需要注意,举例说明: const foo=[]; foo=[1];//Assignment to constant variable. 正常报错,没毛病,再看: const foo…

es6

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lcr</title> 1:引入的改变: script标签的type属性的值是module(或者traceur),而不是text/javascript <script type="module"> < /script&g…
一.运行及关闭运行: 在上一节中我们用shift+右击在C:\vue\es6文件夹中打开命令行使用:npm run dev,打开了我们的vue界面. 如果要关闭则在命令行中按住ctrl+C则可以关闭. 二.let和const使用方法: (1).在javascript中我们通常使用var会发生变量提升,即脚本开始运行时,变量已经存在了,但是没有值,所以会输出undefined, 而let不会发生变量提升,这表示在声明它之前,变量是不存在的,这时如果用到它,就会抛出一个错误. (2).var 是函数…
注册博客园账号也有好些年了,有事没事经常来逛逛,感觉博客园的同学们一直都很活跃,相比国内其他社区来讲,这里的技术氛围很浓,非常适合学习和交流,所以博主我也决定在这里驻扎了,在这里,博主希望能坚持写一些JavaScript方面的文章,并和大家一起交流和探讨. 最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之处,我们就先说一说let吧. 1. let添加了块级作用域 我们知道,JavaScript是没有块级…
声明变量由var变成let.let实际上为JavaScript新增了块级作用域.let与var相比具有的特性有 1.不允许重复声明一个变量 var a=5; var a=7; let b=6; let b=8;//Uncaught SyntaxError: Identifier 'a' has already been declared重复声明变量报错,而var重复声明的变量不会报错 2.不存在变量提升,也就是预解析过程.只有变量声明后才可以调用,在该变量声明前使用会报错 console.log…
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declaratio…
const 和 let 的唯一区别就是用 const 声明的变量不能被重新赋值(只读变量),比如像下面这样就会报错: const foo = 1 foo = 2 // TypeError: Assignment to constant variable. 注:本文不会使用“常量”这个术语,因为我觉的这个术语容易有歧义:有些人把数字.字符串等这些不可改变的字面量称为常量,也有人把一些只读属性称为常量,比如 Math.PI,还有人把 ES6 里用 const 声明的变量称为常量.不过一般来说,这点歧…
let和const命令 let命令 块级作用域 const命令 全局对象的属性 let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了…
const的可变性 const用于声明常量. 什么是常量,声明后的值不可更改. 对于值类型,比如string,number等等.const声明确实有效. const str = "string"; str = 1; // Uncaught TypeError: Assignment to constant variable. 对于引用类型,比如array,object.const声明只保证了引用不可更改,但保证不了其内容. const arr = []; arr.push(1); //…
ECMA6的新特性1 let特性: 1.不允许重复声明 2.没有预解析 3.块级作用域 一对{}包括的区域称为代码块 块级作用域指一个变量或者函数只在该区域才起作用. 例1: console.log(a);//会报错,a is not defined let a = 3; //原来如果用var声明到调用后,不会报错,而是undefined,说明用var预解析了,但是用let不会 例2: //如果申明i的时候用原来的var,则每次定时器打出来的都是i,之前解决的方案就是利用函数的自执行,将每次的i…
× 目录 [1]let [2]const [3]try 前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用其他类型的作用域单元甚至可以实现维护起来更加优秀.简洁的代码,比如块作用域.随着ES6的推广,块作用域也将用得越来越广泛.本文是深入理解javascript作用域系列第四篇——块作用域 let for (var i= 0; i<10; i++) { console.log(i); } 上面这段是很熟…
系列文章 -- ES6笔记系列 一.函数级作用域 我们都知道,在ES6以前,JS只有函数级作用域,没有块级作用域这个概念 没有块级作用域,有利有弊,利于方便自由,弊于作用域内的变量容易被共享,例如这个例子 var a = []; for (var i = 1; i <= 10; ++i) { a[i] = function() { return i; }; } a[3]() 循环中变量i是处于全局作用域下的,其实这里是个闭包,函数内部的i与函数外的i形成了引用的关系,导致函数退出之后i未被销毁,…
  1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declarat…
let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = ; ; } a // ReferenceError: a is not defined. b 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var 声明的变量返回了正确的值.这表明,let 声明的变量只在它所在的代码块有效. for循环的计数器,就很合适使用let命令. ;…
1.let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值.这表明,let声明的变量只在它所在的代码块有效. for循环的计数器,就很合…
let 命令 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 [注]:let与var相似,用来声明变量.但是只在它所在的代码块内有效 for (let i = 0; i < 10; i++) {} console.log(i); //Uncaught ReferenceError: i is not defined console.log(foo); // 输出undefined console.l…
let 声明变量,可以说是具有作用域的var,用于声明变量,主要规则如下: 1 let声明的变量拥有块级作用域 { let i = 1; console.log(i); // 1 } console.log(i); // Uncaught ReferenceError: i is not defined 2 同一作用域,let变量应先声明再调用,同时不能重复声明 { console.log(t1); // undefined var t1 = "var声明的变量"; console.l…
整理了ES6常用的一些语法,跟大家分享(promise.generator什么的还没有梳理清楚,后续再更新...) 1⃣️ 变量声明-let 与 const (首先关于测试结果:这里有个小问题,如果用let/const声明的变量,在控制台调试的话,第一次输出结果后,第二次如果你还想用,要么把代码放入编辑器中,再打开浏览器看结果,要么就把变量名更改重新输入结果,否则是会报错的) let与const的作用与var 类似,都是用来声明变量但是在实际应用中,它俩有各自的特殊用途 (注意:ES6里let和…
Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行. Babel 提供一个REPL在线编译器,可以在线将 ES6 代码转为 ES5 代码.转换后的代码,可以直接作为 ES5 代码插入网页运行. Traceur也提供一个在线编译器,可以在线将 ES6 代码转为 ES5 代码.转换后的代码,可以直接作为 ES5 代码插入网页运行. 1. let命令 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的…
ES6整理 1. ECMAScript 6简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. 2. let 和 const 命令 2.1. Let 命令 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. for (let i = 0; i < 3; i++) { let i = 'abc'…
  前  言 JRedu ECMAScript 6 是 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性. ES6 与上一个版本 ES5 的所有不同之处,对涉及的语法知识给予详细介绍,并给出大量简洁易懂的示例代码. ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. 那今天就让我们来详细了解一…