var函数

编程风格

风流意气都作罢 提交于 2020-01-11 06:34:05
块级作用域 (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

编程风格

谁说我不能喝 提交于 2020-01-11 06:33:47
块级作用域 (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

javascript的变量提升var

自古美人都是妖i 提交于 2020-01-11 02:44:09
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。 JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。 // 变量可以在使用后声明 x = 5; // 变量 x 设置为 5 elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x; // 在元素中显示 5 var x; // 声明 x // 变量可以先使用再声明 var x; // 声明 x x = 5; // 变量 x 设置为 5 elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x; // 在元素中显示 5 要理解以上实例就需要理解 “hoisting(变量提升)”。 变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。(注意,提升的是声明) JavaScript 初始化不会提升 JavaScript 只有声明的变量会提升,初始化不会。 例1: var x = 5; // 初始化 x var y = 7; // 初始化 y elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x + " " + y; // 显示 5 和 7 例2:

【B/S】JS(3)

与世无争的帅哥 提交于 2020-01-11 01:27:30
JS:JavaScript是属于网络的脚本语言, 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。主要使网页有交互,和HTML一样属于前端编程语言(运行在客户端)。 JavaScript不仅可以在前端使用,node.js平台可以让JavaScript具有服务端编程语言能力 js代码的位置(head中): 第一种方式:js代码写在<script>标签中。     type="text/javascript"(可不写) :javascript代码,现在所有的浏览器都会把<script>标签中的内容当成JS来执行 <script type="text/javascript">   alert("hello world");// 提示框,打印一句话    console.debug("哈哈"); //firefox和google浏览器中使用F12打开开发者工具,选中控制台面板(console) </script> 第二种方式:将js代码作为a标签的href属性值运行,当我们点击这个a标签的时候就会执行js代码。javascript:代码 <a href="javascript:alert('你好')">点击</a> 第三中方式:将js代码放在一个独立js文件中,然后通过<script src="hello.js"></script>      

JavaScript 基本语法结构

孤者浪人 提交于 2020-01-11 01:25:27
1 变量 JavaScript的变量是 弱类型 的,就是所有的对象都是使用var 来进行声明 2 变量的命名规则 1.由字母、数字、下划线组成,区分大小写 2.以字母开头 3.变量名不能有空格 4.不能使用 JavaScript 中的关键字做变量名 3 变量的声明有哪些方式 var test //声明了名为test的变量 var test2 = "wangshouchang" //声明变量并赋值 在js中变量可以不声明直接使用,并根据数据类型来确定变量的类型 x = 100 //整数 y = "hello’” //字符串 z = treu //布尔类型 cars=["Audi","BMW","Volvo"]; // cars 是一个数组 4 作用域 作用域分为全局变量和局部变量 全部变量是在函数的外部,用于整段JavaScript代码 局部变量是定义在函数内部 5 数据类型 1 字符串 var name = "wang" var name = 'wang' 字符串可以是双引号或者单引号 2 数字 var x = 11 var y = 11.00 数字只有一种类型,可以带小数点 3 布尔 var x = true var y = false 与java 的布尔类型一样 4 数组 创建数组有多种方式 //先创建数组再赋值 var boys = new Araay(); boys[0]

JavaScript_BOM对象

╄→尐↘猪︶ㄣ 提交于 2020-01-10 21:56:21
BOM(浏览器对象模型),它可以对浏览器窗口进行访问和操作,使用BOM,我们可以移动窗口、改变状态中的文本及执行其他与页面内容不直接相关的动作。 简而言之:BOM对象的功能就是使JavaScript有能力与浏览器’对话’,以便达到我们想要的效果。 一.Window对象 1.简单说明 所有的浏览器都支持window对象; 从概念上来讲,一个HTML文档对应一个window对象; 从功能上来说,它可以控制浏览器的窗口; 从使用上讲,window对象不需要创建对象,直接使用即可。 2.window对象方法 2.1.alert():页面弹框提醒 var s =window.alert("hi"); //返回结果为undefined,即无返回值 console.log('s='+s); 2.2.confirm():页面弹框让进行选择,返回值为布尔值(选择'确认",则返回true;选择'取消'返回false) var res= window.confirm("this is a person ?") console.log('res='+res); 2.3.prompt():页面弹框让用户进行输入,点击'确定'后返回值为用户输入的字符串值,点击'取消'后,返回值为null var name = window.prompt("pelase input your name:"); console

let和const注意点

泪湿孤枕 提交于 2020-01-10 20:57:19
let 一、块级作用域 下面的代码如果使用 var ,最后输出的是 10 。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所有数组 a 的成员里面的 i ,指向的都是同一个 i ,导致运行时输出的是最后一轮的 i 的值,也就是 10。 如果使用 let ,声明的变量仅在块级作用域内有效,最后输出的是 6。 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 上面代码中,变量 i 是 let 声明的,当前的 i 只在本轮循环有效,所以 每一次循环的 i 其实都是一个新的变量,所以最后输出的是 6 。你可能会问,如果每一轮循环的变量 i 都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值?这是因为 JavaScript

php序列化和反序列化学习

旧巷老猫 提交于 2020-01-10 20:50:27
1、什么是序列化 序列化说通俗点就是把一个对象变成可以传输的字符串。 1、举个例子,不知道大家知不知道json格式,这就是一种序列化,有可能就是通过array序列化而来的。而反序列化就是把那串可以传输的字符串再变回对象。 <?php //json序列化,json_encode(),json_decode() $book=array("book1"=>"web安全","book2"=>"主机安全","book3"=>"操作系统"); $json=json_encode($book); echo $json; ?> 输出结果: {"book1":"web安全","book2":"主机安全","book3":"操作系统"} 我们将数组序列化成json格式的字串的目的就是为了方便传输。我们可以看见,这里json格式来保存数据主要是使用键值对的形式。 2、对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了

javascript 基础3

时间秒杀一切 提交于 2020-01-10 15:54:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1、JavaScript 对象:对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的。 var myDog = { "name": "marcel", "legs": 4, "tails": 1, "friends": ["clause"] }; 2、访问对象属性:有两种方式访问对象属性,一个是点操作符( . ),一个是中括号操作符( [] )。 var testObj = { "hat": "ballcap", "shirt": "jersey", "shoes": "cleats" }; var hatValue1 = testObj.hat; // . 访问 var hatValue2 = testObj["hat"]; // [] 访问 testObj.handbag = "guchi"; //增加属性 delete testObj.handbag; //删除属性 3、检查对象具有属性 var myObj = { gift: "pony", pet: "kitten", bed: "sleigh" }; function checkObj(checkProp) { // Your Code Here if (myObj.hasOwnProperty(checkProp)){

封装js工具函数

泄露秘密 提交于 2020-01-10 14:53:21
1、判断数据类型的方法 var type = function(data) { var toString = Object.prototype.toString; var dataType = data instanceof Element ? "element" // 为了统一DOM节点类型输出 : toString .call(data) .replace(/\[object\s(.+)\]/, "$1") .toLowerCase() return dataType }; 使用 type("a") // string type(1) // number type(window) // window type(document.querySelector("h1")) // element    来源: https://www.cnblogs.com/taochengyong/p/12175785.html