赋值语句

javascript执行上下文环境

Deadly 提交于 2019-12-21 01:41:20
今天,想对javascript的执行上下文环境做一个深入的理解。之前一直都有这打算的,但无奈忙着忙着就忘记了。今天看了一篇博客,对执行上下文环境的理解可以说是醍醐灌顶。 一、对一段代码的理解开始 在浏览器的控制台输入以下代码段: 这个结果说明,代码在一句句执行之前,浏览器已经做了一些准备工作,所以,后面两个都没有报错。下面再看一段代码: 这个结果说明,函数声明时,把整个函数赋值了,而函数表达式和变量一样,只是申明。 我们总结一下,在“准备工作”中完成了哪些工作: 变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值; 这三种数据的准备情况我们称之为“执行上下文”或者“执行上下文环境”。 二、上面是在全局作用域下的执行上下文环境,下面再看下函数作用域下的上下文环境 以上代码展示了在函数体的语句执行之前,arguments变量和函数的参数都已经被赋值。从这里可以看出, 函数每被调用一次,都会产生一个新的执行上下文环境。 再看一段代码: 可以看出, 函数在定义的时候(不是调用的时候),就已经确定了函数体内部自由变量的作用域。 最后的总结: 全局代码的上下文环境数据内容为: 普通变量(包括函数表达式), 如: var a = 10; 声明(默认赋值为undefined) 函数声明, 如: function fn() { } 赋值 this 赋值

python/数据类型和变量

拈花ヽ惹草 提交于 2019-12-19 14:10:32
数据类型和变量 数据类型   计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,   计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,   需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种: 整数   Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。   计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。 浮点数   浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,   比如,1.23x10 9 和12.3x10 8 是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。   但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10 9 就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。   整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。 字符串   字符串是以单引号'或双引号

前端面试必会 | 一文读懂现代 JavaScript 中的变量提升 - let、const 和 va

删除回忆录丶 提交于 2019-12-19 08:05:35
本文翻译自 https://blog.bitsrc.io/hoisting-in-modern-javascript-let-const-and-var-b290405adfda ,作者 Sukhjinder Arora,内容有部分删改,标题有改动。 许多 JavaScript 程序员将提升解释为 JavaScript 将声明(变量和函数)移至其当前作用域(函数或全局)顶部的行为。好像它们实际上已经移到了代码的顶部,事实并非如此。例如: console.log(a); var a = 'Hello World!'; 他们会说,上面的代码将在提升后转换为以下代码: var a; console.log(a); a = 'Hello World!'; 尽管看起来是这样,因为代码也工作正常了,但是 JavaScript 引擎事实上并不是这么做的,你的代码还是在这里。 那么,提升是什么呢? 在编译阶段,即在代码执行前的几微秒内,将对其进行扫描以查找函数和变量声明。所有这些函数和变量声明都添加到内存中称为 词法环境 的 JavaScript 数据结构内部。这样,即使在源代码中实际声明它们之前也可以使用它们。 词法环境是什么? 词法环境是用来保存标识符和变量映射关系的地方。标识符是变量或者函数的名字,变量是对实际对象(包括函数对象和数组对象)或者原始值的引用。 简而言之,

java数据类型

半世苍凉 提交于 2019-12-18 11:07:00
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定。由于是statical typed,导致Java语言也是强类型(Strong typed)的。强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值。同时限制了这些值可以进行的操作类型以及操作的具体方式。所有的赋值操作,无论是显式的还是在方法调用中通过参数传递,都要进行类型兼容性检查。 1. 数据类型: 在java源代码中,每个变量都必须声明一种类型(type)。有两种类型:primitive type和reference type。引用类型引用对象(reference to object),而基本类型直接包含值(directly contain value)。因此,Java数据类型(type)可以分为两大类:基本类型(primitive types)和引用类型(reference types)。primitive types 包括boolean类型以及数值类型(numeric types)。numeric types又分为整型(integer types)和浮点型(floating-point type)。整型有5种:byte short int long char

go语言基本运算符

不问归期 提交于 2019-12-18 09:31:02
Go语言基础之运算符 运算符用于在程序运行时执行数学或逻辑运算。 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++ (自增)和 -- (自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 <= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 逻辑运算符 运算符 描述 && 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 ! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 位运算符 位运算符对整数在内存中的二进制位进行操作。 运算符 描述 &

使用CodeDom提高ORM性能 转

半城伤御伤魂 提交于 2019-12-18 09:18:03
使用CodeDom提高ORM性能 下载本文代码: http://www.cnblogs.com/Files/afritxia2008/WebTest.rar (请使用 Visual Studio 2008 打开)   在进行讨论之前,我假设读者已经了解 .NET 反射、自定义属性、 CodeDom 这些技术。并接触过 ORM 框架源码,如果对 ORM 并不了解,可以参考: http://www.cnblogs.com/xdesigner/archive/2008/06/24/1228702.html 。在这篇文章中,我们主要讨论通过 CodeDom 提高 ORM 读取数据的性能问题。   ORM ( Object/Relation Mapping 对象 - 关系数据库映射)其中的一个功能是将数据源数据赋值给实体。实现方法是利用自定义属性和 .NET 反射机制。例如: 1 public class LWordEntity 2 { 3 /**/ /// <summary> 4 /// 获取或设置留言 ID 5 /// </summary> 6 [DataColumn(ColumnName = " LWordUID " )] 7 public int LWordUID 8 { 9 // 10 } 11 12 /**/ /// <summary> 13 /// 获取或设置发送用户 14 /

Python基础教程笔记——条件,循环和其他语句

落爺英雄遲暮 提交于 2019-12-18 04:07:00
条件,循环和其他语句 Table of Contents 1 print和import的更多信息 1.1 使用逗号输出 1.2 把一些东东作为另一些东东导入 2 赋值魔法 2.1 序列解包 2.2 链式赋值 2.3 增量赋值 3 语句块:缩排的乐趣 4 条件和条件语句 4.1 这就是布尔变量的作用 4.2 条件执行和if语句 4.3 else子句 4.4 elif子句 4.5 嵌套代码块 4.6 更复杂的条件 4.6.1 比较运算符 4.6.2 相等运算符 4.6.3 同一性运算符 4.6.4 成员资格运算符 4.6.5 字符串和序列比较 4.6.6 布尔运算符 4.7 断言 5 循环 5.1 while循环 5.2 for循环 5.3 循环遍历字典元素 5.4 一些迭代工具 5.4.1 并行迭代 5.4.2 编号迭代 5.4.3 翻转和排序迭代 5.5 跳出循环 5.5.1 break 5.5.2 continue 5.5.3 while True/break 5.5.4 循环中的else子句 6 列表推导式 7 三人行 7.1 pass 7.2 del 7.3 exec和eval 1 print和import的更多信息 1.1 使用逗号输出 说明:使用print时,也可以在语句中添加多个表达式,每个表达式用逗 号分隔; 注意:在用逗号分隔输出时

结对编程——代码审查

你离开我真会死。 提交于 2019-12-17 08:30:01
软件工程第四次作业   审查队友的代码   代码地址: https://coding.net/u/zzixuk/p/NewCoding/git?public=true 功能模块名称 学生信息管理系统 审查人 朱玉 审查日期 2018.4.5 代码名称 学生信息管理系统 代码作者 赵梓旭 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 否 头文件和定义文件的目录结构是否合理? 否 版权和版本声明是否完整? 否 重要 头文件是否使用了 ifndef/define/endif 预处理块? 否 头文件中是否只存放“声明”而不存放“定义” 否 程序的版式 重要性 审查项 结论 空行是否得体? 是 代码行内的空格是否得体? 是 长行拆分是否得体? 是 “{” 和 “}” 是否各占一行并且对齐于同一列? 是 重要 一行代码是否只做一件事?如只定义一个变量,只写一条语句。 否 重要 If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 是 重要 在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?注释是否清晰并且必要? 是 重要 注释是否有错误或者可能导致误解? 否 重要 类结构的public, protected, private顺序是否在所有的程序中保持一致? 否 命名规则 重要性 审查项 结论 重要

++i与i++的区别

一世执手 提交于 2019-12-16 10:39:53
要分清这个区别,先要掌握赋值的顺序,赋值语句是从右往左执行的。 那么++i第一步是把自身i+1后才赋值给自身,即先加后赋值。 i++第一步是先把自身赋值给自身,即先赋值后再加减。    同理:--i与i--一样的道理 例题:var a = 10;    var b = ++a -1 + a++;    document.write (a + " " + b); 则会输出:12 21 来源: https://www.cnblogs.com/yuanqisheng/p/12047812.html

ES6知识点1

怎甘沉沦 提交于 2019-12-14 02:31:12
1 课程介绍 1.1简介 ​ ES6 既是一个历史名词( 特指2015年发布的标准ES2015 ),也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等 。 1.2环境安装 ​ Node.js是JavaScript语言的服务器运行环境,对ES6的支持度比浏览器更高。 ​ 网址: https://nodejs.org/en/ ​ 默认安装 1.2.1NPM使用 ​ 本地安装 ​ npm install 使用:require('模块名') ​ 全局安装 安装模块 npm install <模块名> -g 卸载模块 npm uninstall <模块名> 更新模块 npm update <模块名> 搜索模块 npm search <模块名> 2 声明和表达式 2.1解构赋值 ​ ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。 ​ 如果解构 不成功 ,变量的值就等于 undefined 。 ​ 如果 等号的右边不是数组(不是可遍历的结构),将会报错 。 ​ 解构赋值不仅适用于var命令,也适用于let和const命令。 ​ (1) 设置默认值 ​ 解构赋值允许指定默认值。 当等式右边没值或是undefined时,使用默认值 。 语法 let [变量=默认值]=[赋值] ​ (2)