var函数

引用类型(object、array)

萝らか妹 提交于 2019-12-19 01:46:32
1.Object类型   1)创建方法: //使用new加object构造函数 var person = new Object(); person.name = "aaa"; person.age = 29; //对象字面量表示法 var person = { name:"aaa",//注意符号 逗号 age:29 };//注意符号 分号 使用对象字面量语法时,属性名也可以使用字符串 留空花括号 var person = {}; //相当于new Object()   2)访问对象属性:   点表示法(建议使用) alert(person.name);   方括号表示法 将访问的属性用字符串的形式放在方括号内,主要用于处理属性名中包含会导致语法错误的字符(例如空格)以及关键字或保留字 alert(person["name"]); 2.Array类型   数组中的 每一项 可以保存 任何数据类型   数组的大小是可以 动态调整 的,即可以随着数据的添加自动增长以容纳新数据   1)创建方法   使用Array构造函数,其中 new操作符可以省略(小括号) var colors = new Array(); var colors = new Array(20);//创建长度为20的数组,注意不是值为20!!!! var colors = new Array("red");//创建含一项

JavaScript:ES6的新特性

旧城冷巷雨未停 提交于 2019-12-18 13:43:43
1、关键字 const: 修饰常量。ES6之前只有变量的声明字段var,ES6开始引入常量关键字,被修饰的变量无法被修改 。 <script type="text/javascript"> var name1 = "XYQ" console.log(name1); //XYQ name1 = "ZZZ" console.log(name1); //ZZZ const name2 = "XYQ" console.log(name2); //XYQ name2 = "ZZZ" //TypeError: Attempted to assign to readonly property. console.log(name2) //无法打印 </script> let: 限定作用域。ES6之前字段var修饰的全局变量作用域被重置后局部会影响全局的值,ES6引入let关键字,在局部对作用域进行限制,局部无法修改全局值。 <script type="text/javascript"> var name1 = "XYQ" if (name1) { var name1 = "ZZZ" // 作用域被重置 console.log(name1) // ZZZ } console.log(name1) // ZZZ,全局变量的值在局部被修改 var name2 = "XYQ" if (name2) {

javascript之典型高阶函数

半世苍凉 提交于 2019-12-18 07:03:43
缘由   虽然以前也使用过javascript语言,但终究是为了配合后端写的一些零零散散的“代码段”,更不能说是javascript项目了。很荣幸的是上个月刚到公司正好碰上项目开始推倒重写,我们team从头开始做架构和实现,目的很清楚,为了改进和超越前面的版本。这是个真正意义上的javascript“项目”,当然服务端不是我们team来负责啦。这也是我真正开始全职使用javascript来编程。由于之前在学校对形式化方法这门课程比较感兴趣,而javascript又是函数式语言,因此我想把更多functional的东西用javascript来表现一下。 几个函数   这几个方法均为javascript 1.6 数组新增的方法。是很典型的functional 函数,当然也非常实用。下面是functional的定义并不来自javascript。 filter:接受一个集合 X s( X 表示类型,s表示集合),一个谓词,这个谓词是从 X 到 bool 的映射(函数)。然后过虑这个集合,并返回谓词为 true 的元素组成的集合。下面是简单的实现: 1 function filter(arr,callback){ 2 var i,out=[]; 3 for(i=0;i<arr.length;i++){ 4 if(callback(arr[i])) 5 out.push(arr[i]); 6

javascript类型系统——数组array

倾然丶 夕夏残阳落幕 提交于 2019-12-18 04:09:14
前面的话   除了对象之外,数组Array类型可能是javascript中最常用的类型了。而且,javascript中的数组与其他多数语言中的数组有着相当大的区别。本文将介绍javascript中的数组Array类型 创建数组   有两种创建数组的方法:使用字面量语法和使用Array()构造函数 【字面量】   使用数组字面量是创建数组最简单的方法,在方括号中将数组元素用逗号隔开即可 var empty = []; //没有元素的数组 var primes = [2,3,5,7,11]; //有5个数值的数组   虽然javascript数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是,javascript数组的每一项可以保存任何类型的数据 var misc = [1.1,true, "a"]; //3个不同类型的元素   数组字面量中的值不一定要是常量,它们可以是任意的表达式 var base = 1024; var table = [base,base+1,base+2,base+3];   它可以包含对象字面量或其他数组字面量 var b = [ [1,{x:1,y:2}],[2,{x:3,y:4}] ];   如果数组的元素还是数组,就形成了多维数组 var a = [[1, 2], [3, 4]];   [注意]使用数字字面量表示法时

不造个轮子,你还真以为你会写代码了?

帅比萌擦擦* 提交于 2019-12-18 02:21:11
作者:茄果 链接:https://zhuanlan.zhihu.com/p/24435564 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 最近在琢磨Vue的实现原理,参照着Vue捣鼓了一个轮子,一个轻量的前端MVVM框架,Vue的绑定指令基本都实现了一遍。轮子姑且叫 vueuv.js 吧,GitHub: qieguo2016/Vueuv ,欢迎围观上星星~~ MVVM原理实现非常巧妙,真心佩服作者的构思;编译部分没用源码的方式实现,自己捣鼓着实现的,过程真是既烧脑也获益良多: 不造个轮子,你还真以为你会写代码了? How to use 引入 vueuv.js 后,用法就跟Vue一毛一样了: <div id="app"> {{ message }} </div> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) 渲染后的HTML是这样的: <div id="app"> Hello Vue! </div> 其他的指令也是一样的语法,更多指令请看Vue的文档 http://cn.vuejs.org/v2/guide/ , 这里就不再赘述了。现在Vueuv还没加Filter语法,另外CSS和style指令暂时只支持对象语法,数组语法还没来得及做

我的前端知识梳理-ES5篇

半世苍凉 提交于 2019-12-18 02:15:01
本篇文章记录自己对es5知识点的理解 原文链接 1 JS创建对象的方式 es5有三种方式创建对象,分别是 // 第一种方式,字面量var o1 = {name: “o1”}var o2 = new Object({name: “o2”})// 第二种方式,通过构造函数var M = function(name){ this.name = name }var o3 = new M(“o3”)// 第三种方式,Object.createvar p = {name: “p”}var o4 = Object.create§ 对于对象,在这里也不做赘述,这里解释一下js中什么是标识符 /* 标识符 在JS中所有的可以由我们自主命名的都可以称为是标识符 例如:变量名、函数名、属性名都属于标识符 命名一个标识符时需要遵守如下的规则: 1.标识符中可以含有字母 、数字 、下划线_ 、$符号 2.标识符不能以数字开头 3.标识符不能是ES中的关键字或保留字 4.标识符一般都采用驼峰命名法 JS底层保存标识符时实际上是采用的Unicode编码, 所以理论上讲,所有的utf-8中含有的内容都可以作为标识符 */ 这里就看出js的缺陷了,如果对象中的属性不符合标识符规范怎么办,也就是我用.操作符无法获取属性的时候,比如说 var obj={ 1 : 1 } console.log(obj.1)

防止IE不支持console.log报错

ε祈祈猫儿з 提交于 2019-12-17 20:03:48
方案一: var console = console || { log : function() { return; } };//兼容IE,当IE不支持console.log时,自定义一个包含log方法的对象给他 方案二:HTML5 Boilerplate 也提供了一个处理所有的 Console call 的 fallback // Avoid `console` errors in browsers that lack a console. (function() { var method; var noop = function () {}; var methods = [ 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn' ]; var length = methods.length; var console = (window.console = window.console

JavaScript

◇◆丶佛笑我妖孽 提交于 2019-12-17 18:12:44
一、如何编写 1、JavaScript代码存在形式 <!-- 方式一 --> <script type"text/javascript" src="JS文件"></script> <!-- 方式二 --> <script type"text/javascript"> Js代码内容 </script> 2、JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。 二、变量 JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量。 <script type="text/javascript"> // 全局变量 name = 'seven'; function func(){ // 局部变量 var age = 18; // 全局变量 gender = "男" } </script> JavaScript中代码注释: 单行 // 多行 /* */ 注意:此注释仅在Script块中生效。 三、数据类型 JavaScript 中的数据类型分为原始类型和对象类型: 原始类型

JS基础之 数组

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-17 13:59:45
数组:数组是使用单独变量名来存储一系列相同数据类型的值。 一维数组:①空数组:var 变量名= new Array();/ var 变量名=【】 ;,var 变量名=new Array(数组长度);      ②有数值的数组: var 变量名 =new Array("1""2");/ var 变量名=【1,2,3】; 注意: var arr1 = [3]; // arr1.length == 1, arr1[0] == 3 var arr2 = new Array(3); // arr2.length == 3, arr2[0] == undefined 多维数组: var twoArray = new Array(); twoArray[0] = new Array();// 数组index=0之中又new一个数组 twoArray[1] = new Array();// 数组index=1之中又new一个数组 // 构建twoArray[0]数组 twoArray[0][0] = "aa"; twoArray[0][1] = "ba"; twoArray[0][3] = "ca"; // 构建twoArray[1]数组 twoArray[1][0] = "acca"; twoArray[1][1] = "bada"; twoArray[1][3] = "cdasa"; var

Web前端性能优化——编写高效的JavaScript

穿精又带淫゛_ 提交于 2019-12-17 05:23:48
前言 随着计算机的发展,Web富应用时代的到来,Web 2.0早已不再是用div+css高质量还原设计的时代。自Gmail网页版邮件服务的问世开始,Web前端开发也开启了新的纪元。用户需求不断提高,各种新的技术层出不穷,前端工程师的地位也越来越重要。然而任何事物都是有两面性的,随着前端技术的发展,前端业务越来越繁重,这大大增加了JS代码量。因此,要提高Web的性能,我们不仅需要关注页面加载的时间,还要注重在页面上操作的响应速度。那么,接下来我们讨论几种能够提高JavaScript效率的方法。 一、从JavaScript的作用域谈起 当JavaScript代码执行时,JavaScript引擎会创建一个执行环境,又叫执行上下文。执行环境定义了变量或函数有权访问的其他数据,决定了它们的行为,每个执行环境都有一个与它关联的 变量对象, 环境中定义的所有函数、变量都保存在这个对象中。在页面加载的时候,JavaScript引擎会创建一个全局的执行环境,所有全局变量和函数都是作为window对象(浏览器中)的属性和方法创建的。在此之后,每执行一个函数,JavaScript引擎都会创建一个对应的执行环境,并将该环境放入环境栈中,所以当前正在执行的函数的执行环境是在环境栈的最顶部的,当函数执行完毕之后,其执行环境会弹出栈,并被销毁,保存在其中的变量和函数定义也会被销毁。 当代码在一个执行环境中执行时