var函数

Go语言学习笔记 - 第二章 程序结构(The Go Programming Language)

这一生的挚爱 提交于 2020-01-13 05:17:39
第二章 程序结构 2.1命名 划重点 函数名、变量名、常量名、类型名、语句标号和包名 以一个字母(Unicode字母)或下划线开头,跟任意数量的字母、数字或下划线,大写字母和小写字母是不同的。 关键字(25个) break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 预定义的名字 (30+个),这些不是关键字,可以再定义中重新使用它们 内建常量: true false iota nil 内建类型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error 内建函数: make len cap new append copy close delete complex real imag panic recover 作用域:内部定义内部有效;外部定义包内有效,名字开头 大写 可在包外部可见。比如: fmt 的 Print 可以在 fmt

[Node.js] 闭包和高阶函数

风格不统一 提交于 2020-01-13 05:15:23
原文地址: http://www.moye.me/2014/12/29/closure_higher-order-function/ 引子 最近发现一个问题:一部分写JS的人,其实对于 函数式编程 的概念并不是太了解。如下的代码片断,常常让他们觉得不可思议: OAuth2Server.prototype.authCodeGrant = function (check) { var self = this; return function (req, res, next) { new AuthCodeGrant(self, req, res, next, check); }; }; 上述片断来自开源项目 node-oauth2-server ,这个authCodeGrant原型函数涉及到JS编程中经常用到的两个概念:闭包 和 高阶函数(check变量在这个函数中被闭包,authCodeGrant能返回函数,因此是一个高阶函数。 闭包 闭包 就是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。 如何来理解这个自由变量呢? 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量 什么样的变量是自由变量呢?如下片断中的freeVar对 inner() 来说就是个自由变量: function wrapper() { var

Google Suggest的简略分析

时间秒杀一切 提交于 2020-01-12 23:56:17
功能的实现主要包括在 http://www.google.com/ac.js 里面,页面里面还有一点辅助作用的脚本。主要是如下的几段: 页面加载的时候首先会调用sf这个函数,功能很简单,就是将焦点设置在文本框中。 < ! - - function sf ( ) { document . f . q . focus ( ) ; } function clk ( url , ct , cd , sg ) { if ( document . images ) { ( new Image ( ) ) . src = "/url?sa=T&ct=" + escape ( ct ) + "&cd=" + escape ( cd ) + "&url=" + escape ( url ) . replace ( / \ + / g , "%2B" ) + "&ei=vQiQQ5e8F6KkOP2pvLAH" + sg ; } return true ; } // --> <!-- function qs ( el ) { if ( window . RegExp & & window . encodeURIComponent ) { var ue = el . href ; var qe = encodeURIComponent ( document . f . q . value ) ; if

Js 数组(一):基础应用

自作多情 提交于 2020-01-12 15:18:16
(一) Js 数据类型   分为基本数据类型以及引用类型   基本数据类型有 null,undefined,Boolen,Number,String,还有一种复杂数据类型 Object。 var var1 = "xianrongbin", var2 = false, var3 = null, var4 = undefined, var5 = 123; console.log(typeof var4); var var6 = [1, 23, 5]; console.log(typeof var6);    这里,其实只需一个var的,为了区别基本数据类型与复杂数据类型,写了两个var 关键字。 将所有的变量定义在一个var后面,有益提升 程序运行效率 。 如果在一个函数中,不标注 var,则该变量是全局变量,是window的变量,因为所有全局变量都是由window承担的。      function testVar() { num = 1; } testVar(); console.log(window.num);    这里输出1,如果在 "num" 前加上var,输出则会报错。 基本数据类型与值类型,一个是传值,一个是改变地址。 var var6 = [1, 23, 5]; function changeValue(obj) { obj.pop(); }; changeValue

js知识总结

丶灬走出姿态 提交于 2020-01-12 08:44:18
定义:基于事件和对象驱动,并具有安全性能的脚本语言 Javascript文件在客户端运行。 浏览器(客户端)的主要组件中包括渲染引擎和JS解释器等。 渲染引擎 - 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来。 JS解释器 - 用来解释执行JS代码。 引入: |---内嵌:<script type=”text/javascript”>具体js代码</script> |---外部:<script type=”text/javascript” src=”js文件”></script> 注意:代码大小写敏感:例如:A与a是两个不同的东东 注释:// 单行注释 /*多行注释*/ js的输出语法 |---弹窗式:alert() alert(123) |---控制台输出:;一般作为调试输出语句 console.log() |---prompt() 方法用于显示可提示用户进行输入的对话框 prompt(222) document.write() 在html文档中打印出来 变量:其值可以发生改变的量就是变量。 变量是用于存储信息的"容器" |---命名:var 变量名 = |---命名规范:js里边:字母、数字、下划线、$符号 等4个组成部分,数字不能作为名字的开始内容。 驼峰法命名 数据类型: |---javascript(6种):

js基础(二)

和自甴很熟 提交于 2020-01-12 02:09:14
1、作用域   块级作用域:一个大括号可以看成是一块,在这块区域中定义的变量,只能在这个区域中使用。   全局变量:用var声明的变量,可以在任何地方使用   局部变量:在函数内部定义的变量   隐式全局变量:声明的变量没有var。全局变量是不能被删除的,隐式全局变量可以被删除。 { var a = 10; console.log(`a=${a}`); // 10 } console.log(`a=${a}`); // 10 { const b = 10; console.log(`b=${b}`); } //console.log(`b=${b}`); // b is not defined { let c = 10; console.log(`c=${c}`); } //console.log(`c=${c}`); // c is not defined   if块 if (false) { var b = 20; } console.log(`b=${b}`) // b=undefined if (true) { var c = 20; } console.log(`c=${c}`) // c=20   方法内定义的变量 function fun () { var a = 10; console.log(`fun方法内打印a的值,a=${a}`) } fun() /

javascript高级

天涯浪子 提交于 2020-01-11 22:41:17
数组及操作方法 数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的。 定义数组的方法 //对象的实例创建 var aList = new Array(1,2,3); //直接量创建 var aList2 = [1,2,3,'asd']; 操作数组中数据的方法 1、获取数组的长度:aList.length; var aList = [1,2,3,4]; alert(aList.length); // 弹出4 2、用下标操作数组的某个数据:aList[0]; var aList = [1,2,3,4]; alert(aList[0]); // 弹出1 3、join() 将数组成员通过一个分隔符合并成字符串 var aList = [1,2,3,4]; alert(aList.join('-')); // 弹出 1-2-3-4 4、push() 和 pop() 从数组最后增加成员或删除成员 var aList = [1,2,3,4]; aList.push(5); alert(aList); //弹出1,2,3,4,5 aList.pop(); alert(aList); // 弹出1,2,3,4 5、reverse() 将数组反转 var aList = [1,2,3,4]; aList.reverse(); alert(aList); // 弹出4,3,2

js基础

会有一股神秘感。 提交于 2020-01-11 16:30:45
目录: 1、js介绍 * js是一款运行在客户端的网页编程语言。最初的目的是为了处理表单的验证操作。 - 弱类型语言 - 脚本语言 - 解释型语言 - 动态类型的语言 - 基于对象的语言 * 组成 - ECMAscript:js标准 - DOM(Document Object Model):文档对象模型,通过js操作网页元素 - BOM(Bowser Object Model):浏览器对象模型,通过api操作浏览器 * 特点: - 简单易用 - 解释执行,无需编译 - 基于对象 * js的应用场景 - 网页特效 - 服务端开发(nodejs) - 命令行工具(nodejs) - 桌面程序(Electron) - app(Cordova) - 控制硬件-物联网(Ruff) - 游戏开发(coco2d-js) 2、js的书写位置 * 内嵌式 <script type="text/javascript"> alert("Hello~"); </script> * 外链式 <script src="" type="text/javascript"></script> * html标签内嵌 <input type='button' value='alert(hello~)' onclick='' /> 3、js代码的注意事项和注释 1)在一对script标签中有错误的js代码

JavaScript编程风格

那年仲夏 提交于 2020-01-11 06:34:36
块级作用域 字符串 解构赋值 对象 数组 函数 Map结构 Class 模块 ESLint的使用 本章探讨如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的、易于阅读和维护的代码。 多家公司和组织已经公开了它们的风格规范,具体可参阅 jscs.info ,下面的内容主要参考了 Airbnb 的JavaScript风格规范。 块级作用域 (1)let 取代 var ES6提出了两个新的声明变量的命令: let 和 const 。其中, let 完全可以取代 var ,因为两者语义相同,而且 let 没有副作用。 'use strict'; if (true) { let x = 'hello'; } for (let i = 0; i < 10; i++) { console.log(i); } 上面代码如果用 var 替代 let ,实际上就声明了两个全局变量,这显然不是本意。变量应该只在其声明的代码块内有效, var 命令做不到这一点。 var 命令存在变量提升效用, let 命令没有这个问题。 'use strict'; if(true) { console.log(x); // ReferenceError let x = 'hello'; } 上面代码如果使用 var 替代 let , console.log 那一行就不会报错

ES6 编程风格

喜欢而已 提交于 2020-01-11 06:34:21
块级作用域 (1)let 取代 var ES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。 'use strict'; if (true) { let x = 'hello';} for (let i = 0; i < 10; i++) { console.log(i);} 上面代码如果用var替代let,实际上就声明了两个全局变量,这显然不是本意。变量应该只在其声明的代码块内有效,var命令做不到这一点。 var命令存在变量提升效用,let命令没有这个问题。 'use strict'; if (true) { console.log(x); // ReferenceError let x = 'hello';} 上面代码如果使用var替代let,console.log那一行就不会报错,而是会输出undefined,因为变量声明提升到代码块的头部。这违反了变量先声明后使用的原则。 所以,建议不再使用var命令,而是使用let命令取代。 (2)全局常量和线程安全 在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。 const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值