变量

深入理解js立即执行函数

点点圈 提交于 2020-03-03 16:00:31
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。先看下图: 从图中可以看出,除了使用()运算符之外,!,+,-,=等运算符都能起到立即执行的作用。这些运算符的作用就是将匿名函数或函数声明转换为函数表达式,如下图所示,函数体是函数声明的形式,使用运算符将其转换为函数表达式之后就可达到立即执行效果: 2.使用立即执行函数的好处 通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象

ES6笔记一

℡╲_俬逩灬. 提交于 2020-03-03 15:23:10
1.let与const ES6 新增了 let 命令,用来声明变量。它的用法类似于 var ,但是所声明的变量,只在 let 命令所在的代码块内有效。 for 循环的计数器,就很合适使用 let 命令。 ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。 const 声明一个只读的常量。一旦声明,常量的值就不能改变。 这意味着, const 一旦声明变量,就必须立即初始化,不能留到以后赋值。 2.变量的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。 // 左右两边结构和格式要保持一致 // 解构不成功为undefined // 解构数组 let [a,b,c] = [1, 2,3] // 解构json let json = { name:‘strive', age: 18, job: 'hah' } let {name, age, job} = json; 用途: 1).交换变量 let x = 1; let y = 2; [x, y] = [y, x]; 2).从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。 // 返回一个数组 function example() { return [1, 2, 3]; }

java_赋值与初始化

♀尐吖头ヾ 提交于 2020-03-03 15:11:52
一、赋值(是给变量指定一个值或者是改变 一个变量的值) 变量类型 变量名=表达式 int i=10; 二、初始化 生成一个变量以后,必须通过明确的赋值语句进行初始化,然后在使用这个变量。 局部变量:必须显示的进行初始化 实例变量和类变量:编译器可以自动对他们进行初始化 来源: https://www.cnblogs.com/liyongmei/p/10960024.html

C#的基础知识

我只是一个虾纸丫 提交于 2020-03-03 13:40:11
Class 哈哈哈fdfdv //他是变量 作为一种不确定类型的变量 class 哈哈哈fdfdv //他是类 作为自定义结构体 public class 变量 //他是类 作为自定义结构体 咸蛋超级借法 filename //他是变量 作为一种不确定类型的变量 string filename //他是变量 字符串类型变量 //filename是什么? 标识符 来源: https://www.cnblogs.com/hack747/archive/2020/03/03/12401311.html

JavaScript 语法介绍

孤街醉人 提交于 2020-03-03 13:26:22
JavaScript 是一个 脚本 语言。它是一个轻量级,但功能强大的编程语言。 JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号: "John Doe" 'John Doe' 表达式字面量 用于计算: 5 + 6 5 * 10 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} 函数(Function)字面量 定义一个函数: function myFunction(a, b) { return a * b;} JavaScript 变量 在编程语言中,变量用于存储数据值。 JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值: var x, length x = 5 length = 6 变量可以通过变量名访问。在指令式语言中,变量通常是可变的。字面量是一个恒定的值。 变量是一个名称。字面量是一个值。 JavaScript 操作符 JavaScript使用 算术运算符

面试实题:No.8

孤者浪人 提交于 2020-03-03 12:07:23
1、X=X+1,X+=1以及X++的效率哪个最高?为什么? 三条语句的效率是x = x + 1 < x += 1 < x++ x=x+1 最低,因为它的执行过程如下: 1. 读取右边变量 x 的内存地址; 2. 执行 x+1; 3. 读取左边变量 x 的内存地址; 4. 将右边的值传给左边的变量 x(编译器并不认为左右两边的变量 x 的内存地址相同)。 首先寻找右面x的地址,然后读取地址中x的值,再在寄存器中将x的值加1,接着寻找左面x的地址(计算机是不知道左面的x就是右面的x的),再讲刚计算的结果存到左面的x的地址中。 x=+1 其次,它的执行过程如下: 1. 读取右边变量 x 的内存地址; 2. 执行 x=1; 3. 将得到的值传给变量 x (因为变量 x 的内存地址已经读出)。 寻找x的地址,然后读取地址中x的值,再在寄存器中将x的值加1,接着将计算结果存到x的地址中(这里计算机知道读与写两个操作的地址是相同的)。 x++ 最高,它的执行如下: 1. 读取右边变量 x 的内存地址; 2. 变量 x 自增1。 寻找x的地址,然后读取地址中x的值,然后直接将地址中的值加1。 从上面的过程可以看出,x++比x+=1少了一个写的过程,而x+=1比x=x+1少了一个寻址的过程(查找左面x的地址)。 2、有表table(id,class,score),用最高效的

win7配置环境变量

空扰寡人 提交于 2020-03-03 08:00:33
和win10配置差不多,一点点区别 1、先找到需要配置环境变量的软件,bin目录地址 比如这个,复制这个地址 2、回到桌面,右击电脑——属性——高级系统配置——环境变量——找到系统变量的path——点击编辑——点击新建,粘贴刚刚的地址——后面就一直点击确定就好了 点击编辑后 如果变量值最后没有“;”分号的话,输入格式是—— ‘;路径;’ 我的是——’;E:\安装目录\ADB;’ 如果变量值最后有“;”分号的话,就直接输入——‘路径;’ 我的是——‘E:\安装目录\ADB;’ 然后一直点确定就好了。 接下来打开dos窗口,输入命令看看是否配置成功 来源: CSDN 作者: 卿婳 链接: https://blog.csdn.net/weixin_43091665/article/details/104615901

Oracle学习笔记(三)PL/SQL编程

夙愿已清 提交于 2020-03-03 07:27:20
目录 1.PL/SQL简介 PL/SQL块结构 代码注释和标示符 文本 2.数据类型、变量和常量 基本数据类型 特殊数据类型 定义变量和常量 PL/SQL表达式 3.流程控制语句 选择语句 循环语句 1.PL/SQL简介 PL/SQL块结构 PL/SQL程序都是以块(BLOCK)为基本单位,整个PL/SQL块分三部分:声明部分、执行部分和异常处理部分: [DECLARE] --声明部分,可选 BEGIN --执行部分,必须 [EXCEPTION] --异常处理部分,可选 END a.声明部分由关键字DECLARE开始,到BEGIN关键字结束。在这部分可以声明程序块中所用到的变量、常量和游标等。 注意:声明的内容只能在当前PL/SQL块中使用。 b.执行部分以关键字BEGIN开始,结束方式有两种:一是代码在运行时出现异常,则执行完异常处理部分的代码就结束,二是未出现异常或未使用异常处理,则以关键字END结束。执行部分是整个PL/SQL程序块的主体,主要的逻辑控制和运算都在这部分完成。 c.异常处理部分已关键字EXCEPTION开始,在该关键字所包含的代码执行完毕后,整个PL/SQL块也就结束了。异常处理部分用来纠正错误或给用户一些错误信息提示,甚至是将各种数据回退到异常产生之前的状态,多用WHEN THEN实现判断。 直接举个例子: 定义一个PL/SQL块

GDB命令详解(进一步学习)

*爱你&永不变心* 提交于 2020-03-03 07:24:23
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。 一般来说,GDB主要完成下面四个方面的功能: (1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 (2)可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) (3)当程序被停住时,可以检查此时你的程序中所发生的事。 (4)动态的改变你程序的执行环境。 兴趣是最好的老师,这里先整理总结一下在调试的过程中经常遇到的问题。带着这些问题进行学习和实践可以有助于加深印象。 再往后是本人实践过程中总结的常见命令,如有什么问题或者建议,都可以联系我,谢谢! _ (1)如何打印变量的值?(print var) (2)如何打印变量的地址?(print &var) (3)如何打印地址的数据值?(print *address) (4)如何查看当前运行的文件和行?(backtrace) (5)如何查看指定文件的代码?(list file:N) (6)如何立即执行完当前的函数,但是并不是执行完整个应用程序?(finish) (7)如果程序是多文件的,怎样定位到指定文件的指定行或者函数?(list file:N) (8)如果循环次数很多,如何执行完当前的循环?

Java并发机制的底层实现--volatile

Deadly 提交于 2020-03-03 05:59:40
Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,JAVA中所使用的并发机制依赖于JVM的实现和CPU的指令。 volatile的应用 在线程并发编程中sychronized和volatile都扮演者重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性“。可见性的意思是当一个线程修改一个共享变量时,另一个线程能读到这个修改的值。如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。 1.volatile的定义与实现原理 Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被唯一和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。 在了解volatile的实现原理之前,我们先来看下与其实现原理相关的CPU术语与说明。 volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编指令来查看对volatile进行写操作时