var函数

立即执行函数

怎甘沉沦 提交于 2019-12-05 02:18:32
好久没发内容了:先发个简单的知识点 我们都知道for循环 for (var i = 0; i < 10; i++) { console.log(i) } //打印0-9 那么,如果换成这两种呢? var a = null; for (var i = 0; i < 10; i++) { a = function(){ console.log(i); } a(); } //打印0-9 var a = null; for (var i = 0; i < 10; i++) { a = function(){ console.log(i); } } a(); //打印10 为什么会有两种不同的结果,说到这儿大家都想到了 立即执行函数 。 当函数在for循环内执行的时候,循环一次函数执行一次打印一次 i , 所以 i 的值也在变化。 反之,当函数在for循环外执行的时候, 函数是在for循环执行完毕后才执行, 此时的 i 的值也变为10了, 所以打印结果不同。 很多时候我们都需要在循环的过程中绑定函数,但却不立即执行,针对此种情况, 建议将var 改为 let; for (var i = 0; i < elements.length; i++) { elements[i].onclick = function(){ console.log(i) } } //点击不同的element

react-redux.js源码中,与mapDispatchToProps相关的源码

不问归期 提交于 2019-12-05 01:50:31
1、正常执行 (1)connect(mapStateToProps, mapDispatchToProps, mergeProps) (2)match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps') 2、引用的函数和变量 (1)1-2中的match function match(arg, factories, name) { for (var i = factories.length - 1; i >= 0; i--) { var result = factories[i](arg); if (result) return result; } } (2)1-2中的mapDispatchToPropsFactories mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories; (3)2-2中的defaultMapDispatchToPropsFactories defaultMapDispatchToPropsFactories = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing,

Golang之flag包的使用

泪湿孤枕 提交于 2019-12-05 01:22:36
1.1 flag简介 import “flag” flag包实现了命令行参数的解析。 要求: 使用flag.String(), Bool(), Int()等函数注册flag,下例声明了一个整数flag,解析结果保存在*int指针ip里: import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname") 如果你喜欢,也可以将flag绑定到一个变量,使用Var系列函数: var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") } 或者你可以自定义一个用于flag的类型(满足Value接口)并将该类型用于flag解析,如下: flag.Var(&flagVal, "name", "help message for flagname") 对这种flag,默认值就是该变量的初始值。 在所有flag都注册之后,调用: flag.Parse() 来解析命令行参数写入注册的flag里。 解析之后,flag的值可以直接使用。如果你使用的是flag自身,它们是指针;如果你绑定到了某个变量,它们是值。 fmt.Println("ip has value ", *ip)

golang中 = 和 :=区别

北城余情 提交于 2019-12-04 23:18:15
[color=red][b]= 是赋值语句 :=是声明类型(编译器帮你做的)并赋值。[/b][/color] 1、=要和var 关键字一起使用。var可以在函数中使用,也可以在函数外使用。 :=只能在函数中使用,所以只能定义局部变量。 2、用var定义之后,用=赋值之后,还可以改变。但是用:=定义的变量不能改变值(也就是b:="q",在函数中不能再重新这样定义 b:="s",但是可以b="s") 3、var和=可以平行定义并赋值: 例如: var p, q float32 = 1.1, 2.2 :=也可以这样做: b, f := "q", 1 来源: CSDN 作者: studypi 链接: https://blog.csdn.net/studypi/article/details/84908228

day47

六眼飞鱼酱① 提交于 2019-12-04 23:18:13
js简介 js是脚本语言,一种轻量级的编程语言,是可以插入HTML页面的编程代码,可以由所有的现代的浏览器执行 引入的方式 通过点的方式(前提创建好的js文件) js的语言规范 单行注释// 多行注释/ ....... ....... / 语句后面以;号结束 js的变量 js的变量名可以使用下划线,字母,数字,$组成的 ,但是不能以数字开头 声明变量名可以使用var变量名;的格式进行声明 注意:变量名区分大小写,推荐使用驼峰体,不能以保留字作为函数名(就相当于python中的内置关键词) js数据类型 js中定义的常量不能修改 js是拥有动态数据类型的 var x //此时x是undefined js不区分整数和浮点型,就只有一种数字类型 python中的布尔值是大写的开头 js中的全部小写 false:NaN 、空字符串、0、null、undefined null表示值为空,一般在需要指定或清空一个变量时才会使用 其中undefined表示的是声名一个变量但是未被初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的是undefined 还有一种NaN,表示不是一个数字(Not a Number) 字符串用+号连接 方法 说明 .length 返回长度 .trim() 移除空白 .trimLeft() 移除左边的空白 .trimRight()

1115 JAVAScript基础

眉间皱痕 提交于 2019-12-04 23:01:31
目录 JavaScript 1.基础 1.1 注释 1.2 引入方式 2. 变量 2.1 变量声明 2.2 变量的命名规范 3.常量 4. 数据类型 4.1 数值型 Number 4.2 字符串型 String 4.3 布尔型 Boolean 4.4 空值 null 4.5 未定义值 undefined 4.6 转义字符 \ 5. 对象 object 5.1 数组 [] 5.2 自定义对象 {} 5.3 date对象 5.4 JSON对象 5.5 正则 6.运算符 6.1 算术运算符 6.2 比较运算符 6.3 逻辑运算符 7. 流程控制 7.1 if 判断 7.2 switch 语句 7.3 循环结构 7.4 三元运算符 8. 函数 8.1 函数的定义 8.2 函数中的arguments参数 8.3 函数的全局变量和局部变量 8.4 作用域 JavaScript 简称js,是一种嵌入到HTML页面的脚本语言,由浏览器一遍解释一遍执行 单纯的HTML页面是静态的(只供浏览),而JavaScript的出现,把静态的页面转换成支持用户交互并响应相应事件的动态页面 是前端的一门编程语言(也是有逻辑) node.js 支持前端js代码 跑在后端服务器上 Js跟Java什么关系? Js跟Java半毛钱关系都没有!!! 原因是当初Java特别火 想蹭热度 js是网警公司开发的

JS数组

荒凉一梦 提交于 2019-12-04 19:08:23
摘要 最近学习了JS数组的基础知识,在这里呢总结一下,包括js数组的属性与方法,js数组常常遇到的一些问题,小编通过查阅一些网上的知识,把关于数组的东西进行了罗列,希望各位大神多多指点! 数组属性 length length属性表示数组的长度,即其中元素的个数。 JavaScript数组的length属性是可变的,当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。 prototype 返回对象类型原型的引用。prototype 属性是 object 共有的。 一般用来给数组实例添加方法。 constructor 表示创建对象的函数。 说明:constructor 属性是所有具有 prototype 的对象的成员。constructor 属性保存了对构造特定对象实例的函数的引用。 基本操作 创建数组 // 数组实例的创建 var arr = [];//创建空数组 var arr = [1,"{1,2}","string"];//创建一个数组并赋值 var arr = new Array(); //创建一个空数组 [] var arr = new Array(5); //创建一个length为5的数组 [undefined, undefined

JS

与世无争的帅哥 提交于 2019-12-04 19:05:35
JavaScript 是前端的一门编程语言 注释 // 单行注释 /* 多行注释1 多行注释2 */ js的引入方式 1.script标签内部直接书写 <script> alert(123) </script> 2.通过script标签src书写,引入外部js文件 <script src = 'js.js'></script> js里面的变量 在js中声明变量需要使用关键字 var 声明的是全局有效 let 只在局部有效 js变量的命名规范 数字 字母 下划线 $ 不能用关键字作为变量名 推荐使用驼峰体命名 js代码默认是以分号作为结束符 js常量 const 定义常量,不能被修改 js中的数据类型 数值类型 number NaN 表示不是一个数字 字符类型String 常用的方法: 方法 说明 .length 返回长度 .trim() 移除空白 .trimLeft() 移除左边的空白 .trimRight() 移除右边的空白 .charAt(n) 返回第n个字符 .concat(value, ...) 拼接 .indexOf(substring, start) 子序列位置 .substring(from, to) 根据索引获取子序列 .slice(start, end) 切片 .toLowerCase() 小写 .toUpperCase() 大写 .split(delimiter

JavaScript

半腔热情 提交于 2019-12-04 18:54:00
目录 Introduction 注释 引入方式 变量 变量声明 变量命名规范 声明常量 数据类型 字符串 方法 多行文本 占位符 数组 方法 运算符 算术运算符 比较运算符 逻辑运算符 赋值运算符 流程控制 if-else if-else switch for while 三元运算 函数 匿名函数 箭头函数 函数的全局变量和局部变量 对象 自定义对象 JSON对象 方法 RegExp对象 Math对象 事件 改变元素属性 提取行间事件 为元素添加事件 window.onload getElementsByTagName 全选 this Introduction 注释 // 单行注释 /* 多行注释1 多行注释2 */ 代码行以;结束 引入方式 // script 标签内直接书写 // 通过script标签src属性添加 <script src='xxxx.js'></script> 事件:用户操作 onclick='alter(xxx);' onmouserover='div1.style.display=bock' document.getElementById 变量 变量声明 var # 声明全局有效的变量 let # 声明局部有效, ES6新语法 变量命名规范 // 数字 字母 下划线 $ 组成 // 推荐使用驼峰体 声明常量 const 数据类型 数值类型 字符串 对象

JavaScript概述

让人想犯罪 __ 提交于 2019-12-04 18:42:34
目录 JavaScript概述 JS引入与注释 Script标签内写代码 引入额外的JS文件 注释语法 JavaScript基础语法 变量声明 JavaScript数据类型 forEach() splice() map() 类型查询 运算符 算数运算符 比较运算符 逻辑运算符 赋值运算符 流程控制 if-else if-else if-else switch for while 三元运算 函数 函数定义 函数中的arguments参数 函数的全局变量和局部变量 作用域 内置对象和方法 自定义对象 Date对象 JSON对象 RegExp对象 Math对象 JavaScript概述 JS引入与注释 Script标签内写代码 #script可以写在head也可以写在body <script> // 在这里写你的JS代码 </script> 引入额外的JS文件 <script src="myscript.js"></script> 注释语法 // 这是单行注释 /* 这是 多行注释 */ #JavaScript中的语句要以分号(;)为结束符。 JavaScript基础语法 变量声明 JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。 声明变量使用 var 变量名; 的格式来进行声明 var name = "simple"; var age = 18;