var函数

前端之JS(五)

老子叫甜甜 提交于 2020-02-03 23:10:24
js的作用域 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 作用域 1. 全局作用域(Global Scope) 在代码中任何地方都能访问到的对象拥有全局作用域,一般来说一下几种情形拥有全局作用域: (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域 var name="yuan"; function foo(){ var age=23; function inner(){ console.log(age); } inner(); } console.log(name); // yuan //console.log(age); // Uncaught ReferenceError: age is not defined foo(); // 23 inner(); // Uncaught ReferenceError: inner is not defined (2)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如: var name="yuan"; function foo(){ age=23

前端之JavaScript:JS之DOM对象三

守給你的承諾、 提交于 2020-02-03 22:55:09
一、JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for (var i in li ){} 现在我们来说一下测试一下第二种(数组和obj的) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var arr = [11,22,33,44,55]; var obj = {'username':'zzz','agr':20}; //js中的这个类似字典的不叫字典,而是一个对象 for (var i in obj){ console.log(i); //拿到的是键 console.log(obj[i]) //值 } for (var j in arr){ console.log(j); //拿到索引 console.log(arr[j]) //拿到值 } </script> </body> </html> 测试for循环 二、获取value属性值 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title

js的日期格式化函数

守給你的承諾、 提交于 2020-02-03 09:50:45
// 日期处理函数 Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 "S" : this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt;

Nodejs异步框架——async

守給你的承諾、 提交于 2020-02-02 17:12:09
上次的网页爬虫写完后,又打算做一个爬图的工具。前两天已经写好了代码。思路如下: 分析页面还是采用cheerio,对<div>中的img进行分析抽取,拿到图片的url。然后用childprocess调用系统的curl工具来下载这些远程url的图片。最后将这些写入到系统的硬盘中。 功能代码如下(只是下载图片的功能代码): var url=require('url'); var fs=require('fs'); var cp=require('child_process'); var DOWNLOAD_DIR='./'; var file_url='http://htmljs.b0.upaiyun.com/uploads/1396874069658-nodejs_1280x1024.png'; function downloads(file_url){ var filename=url.parse(file_url).pathname.split('/').pop(); var file=fs.createWriteStream(DOWNLOAD_DIR+filename); var curl=cp.spawn('curl',[file_url]); //use spawn curl.stdout.on('data',function(data){ file.write(data);

Function对象

匆匆过客 提交于 2020-02-02 13:52:56
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Function对象</title> <script> /* Function:函数(方法)对象 1.创建 1. var fun = new Function(形式参数列表,方法体); 2. function 方法名称(形式参数列表){方法体} 3. var 方法名 = function(形式参数列表){方法体} 2.方法 3.属性 length:代表形参的个数 4.特点 1。方法定义时,形参的类型不用写,返回值类型也不写 2。方法是一个对象,如果定义名称相同的方法,会覆盖 3。在js中,方法的调用只与方法的名称有关,和参数列表无关 4。字方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数 5.调用 方法名称(实际参数列表); */ //创建方式1 不常用 var fun1 = new Function("a", "b", "alert(a);"); //调用方法 /*fun1(1,3);*/ //创建方式2 function fun2(a, b) { alert(a + b); } //调用方法 /* fun2(1,3);*/ //创建方式3 var fun3 = function (a, b) { alert(a

100个JavaScript代码片段

我的未来我决定 提交于 2020-02-02 13:00:32
实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break } } return strre + "..." } 获取域名主机 function getHost(url) { var host = "null"; if(typeof url == "undefined"|| null == url) { url = window.location.href; } var regex = /^\w+\:\/\/([^\/]*).*/; var match = url.match(regex); if(typeof match != "undefined" && null != match) { host = match[1]; }

作用域和闭包

假装没事ソ 提交于 2020-02-02 10:45:17
知识点 执行上下文 this 作用域 作用域链 闭包 执行上下文 范围:一段 <script> 或者一个函数 全局:变量定义、函数声明 函数:变量定义、函数声明、this、arguments 12345678910111213141516171819202122 //全局中或某个函数体中,程序会把变量声明提前,并且用undefined占位(即赋值)//也会把函数声明提前console.log(a);//undefinedvar a = 100; fn('kk');//kk 20function fn(name) { age = 20; console.log(name, age); var age;}//详细运行过程如下// var a;// //函数fn也被提前;// console.log(a);//因为只是声明提前,赋值没有提前,所有undedined// a = 100;// fn('kk');///////////// function fn(name) {// var age;//同理,声明被提前 name也被赋值// console.log(name, age)// } 123456789 fn1();//正常执行function () {}//这里fn2声明被提前,还没有赋值,所有报错:undefinedfn2();var fn2 = function() {}

前端之JavaScript

僤鯓⒐⒋嵵緔 提交于 2020-02-02 02:03:28
1 | 0 JavaScript概述 1 | 1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 1 | 2 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更

Javascript变量作用域!

孤街浪徒 提交于 2020-02-01 05:52:50
基本类型和引用类型 基本类型值指的是简单的数据段,而引用类型值指的是那个可能由多个值组成的对象 讲一个值赋值给变量时,javascript解析器首先要确定是基本类型还是引用类型,基本数据类型可以直接操作保存在变量中的值,而引用数据类型的值是保存在内存中的对象,在操作对象是,实际上操作的是对象的引用而不是实际的对象 变量的赋值 如果从一个变量上向另一个变量上复制 基本数据类型 的值,会在变量对象上创建一个新值,然后把该值复制到新变量的位置上,这个很好理解,来看下例子: javascript var num1 = 5; var num2 = num1; 这是基本数据类型,而引用类型呢?其实同样会将原来变量上的值复制一份到新的变量当中,只不过,复制的其实是原来变量的一个指针,而这个指针指向存储在堆中的一个对象。复制完成后,两个变量都指向了堆中的同一个对象,所以改变其中一个的值,会对另外一个产生影响。有以下代码 javascript var obj1 = new Object(); var obj2 = obj1; obj1.name = "Nicholas"; alert(obj2.name); //"Nicholas" 传递参数 在javascript里面,参数的传递都是按照 值类型来传递 的,即使你传入的是一个引用类型 javascript function setName(obj)

07-常用内置对象

痴心易碎 提交于 2020-02-01 05:42:29
Web前端有三层: HTML:从语义的角度,描述页面 结构 CSS:从审美的角度,描述 样式 (美化页面) JavaScript:从交互的角度,描述 行为 (提升用户体验) JavaScript和ECMAScript的关系 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)制定的标准。 JavaScript是由公司开发而成的,问题是不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。 简单来说, ECMAScript不是一门语言,而是一个标准 。符合这个标准的比较常见的有:JavaScript、Action Script(Flash中用的语言)。就是说,你JavaScript学完了,Flash中的程序也就轻而易举了。 ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不能那么快去追上这个标准。 ECMAScript 6 是现行常用版本:学习地址如下: http://es6.ruanyifeng.com/ JavaScript的组成 JavaScript基础分为三个部分: ECMAScript