流年发福

流年发福的笔记

来自014.[JavaScript] 第8章 对象和数组[中](1)

数组:除了Object类型之外,Array 类型是ECMA最常用的类型。而且它和其他语言中的数据有很大的区别。虽然数组都是有序排列,但是每个元素都可以排列任何数据类型。注:这一点和java有很大不同。 同样有两种方法创建,一个是new,一个是字面量 var box = new Array(); // 声明一个空数组document.write(typeof box);// 该数据属于对象类型 var box2 = new Array("某人",28,"北京");document.write(box2); // 以逗号的分割打印出来 document.write(box2[2]); // 打印其中一个元素var box3 = new Array(10);// 创建数组,包含10个元素。 // 字符串下标也是可以打印var box4=[];box4["name"]="lee";document.write(box4["name"]);  // 超复杂数组var box5 = [{name:"123",age:24},[3,4,5,"haha",new Object()],"jisuanji",25+25,new Array(12,3,4) ];document.write(box5);document.write(box5[0].name);

来自004.[PHP] 第2章 基本语法[1](1)

三种风格的php编写: <?php// 一句话的简单风格echo "my first php";?> one line style<br/><? echo "my first php"?>  script style<br/><script language="php">echo "my first php";</script> 三种输出函数:void echo( )//echo 函数 无返回值echo "this is from echo"; int print( )//print 函数 返回值是整型echo (print "this si from print"); echo 和print 功能几乎相同,但是echo速度快一点,因为没有返回值。 int printf( ) 返回字符串的长度// printf C语言 必须加括号printf('there are %d aplles',5); sprintf( ) 返回字符串本身 // sprintf 不可以向浏览器输出,而是保留在内存里,必须依靠echo输出// 必须加括号echo sprintf("the number of %d",7); 

来自001.[JavaScript] 第1章 JavaScript概述(1)

背景JS 诞生于1995年,当时是用来在客户端验证表单信息的。(以免每次都用服务器来验证。当时拨号上网,服务器验证是很痛苦的一件事。) 定义它是面向对象的,解释语言。基于事件驱动的,相对安全的客户端脚本语言。主要目的:验证发往服务器的拘束,增加web互动,加强用户体验度(现在最重要就是用户体验)。 特点松散性,比如变量不具一个明确的类型。对象属性,不像java,它是把属性映射为任意属性值。继承机制,基于原型的继承,不同于java等。 历史1992年,Nombas 开发的C - -  的嵌入式脚本语言。后改名ScriptEase。奠定了脚本语言的基础。1995年,Netscape 为了解决向服务器提交数据之前验证,推出LiveScript 后改名JavaScript。后微软退出只支持ie的JScript。1997年,JavaScript 1.1 ECMA标准化推出。为团IE4.0 第一个遵循ECMA规范,而javascript1.3一年后才遵循。结果是JScript 成为基础。1999年后,犹豫windows绑定IE,JScript成为标准。后,火狐(网景独立出来的)支持javascript非常好,成为第二大浏览器。 JavaScript核心JavaScript 由三部分组成。1 核心 ECMAScript(愈发,类型,语句,关键字,保留字,操作符,对象等。版本有1,2,3,5. 第四个删除了。)2008年,5大浏览器都支持ECMA262,其中火狐支持5.0版本。Safari 支持3.0. 2 文档对象模型 DOMDocument Object Model (1,2,3级)Safari 支持1级,IE1-7支持1级,89支持3级。火狐支持3级。 3 浏览器对象模型BOMBrowser Object Model. 

来自007.[JavaScript] 第5章 运算符[上](1)

表达式自加,自减。和JAVA一致。 不同点:对象也可以自加。调用valueOf 或 toStringvar box={     valueOf : function(){     return 123;     }};box++;document.write(box); 加号运算符var a = "123";// 加号操作符,自动转换成数值,转换不了的转换成NaNdocument.write(typeof +a);  //  number 类型// 但只是+a , a 不变。document.write(typeof a); 减号运算符就是变成负数box=100; -box 就是-100box=“90"; -box 就是-90 加法运算符的注意事项:// 如果有字符串就不是数字运算。而是都转换成字符串。这一点也和java一样var b = 100 + "100";document.write("<br/>");document.write(b);

来自008.[JavaScript] 第5章 运算符[中](1)

除了大于小于,等于,还有一个特殊运算符:恒等 === 和不恒等!==这是和java不一样的 var a = '3'> 22;document.write(a); // 如果一个是字符串,那么就是转换成数值再比较。 var b = '3' >'22';document.write(b); // 如果两个是字符串,那么就是转换第一个字符成数值再比较。也就是3与2的比较 var c = '123'>'22'; // 1与2的比较document.write(c); var d = 'a'>'b'; // 比较的是ASC码document.write(d);

来自009.[JavaScript] 第5章 运算符[下](1)

这一讲基本和java一样 1,位运算符比如 25<<3 2,+= -= 3,三元运算符

来自010.[JavaScript] 第6章 流程控制语句[上](1)

var a =100;var b =200; // 单行语句// 用花括号包含的语句集合,就叫符合语句。属于一组。// 也叫做代码快。{var height=200;var width=300;}

来自011.[JavaScript] 第6章 流程控制语句[下](1)

和JAVA一样。 do-while 注意分号do{     代码}while(条件); while 语句, 同javafor 语句,同javafor in 语句,同java 5.0for(var in loot){ }

来自012.[JavaScript] 第7章 函数(1)

ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体。 函数的声明与调用:function box(){alert("只有调用才可以执行");}box(); arguments 对象ECMA的函数不介意接受多少参数,不会因为参数形式不一样而报错。因为,在内部,它用到了arguments方法,来接受传递的数值。换句话,如果传递一个,就是argument[0], 以此类推。 function test(){return arguments[0]+' | '+arguments[1]+' | '+arguments.length;} document.write(test(1)); 练习:实现累加function add(){var sum=0;for(var i=0;i<arguments.length;i++){sum += arguments[i];}return sum;} document.write(add(1));document.write(add(1,2));document.write(add(1,3,5)); 小结:这一点实现比java好很多,虽然JAVA5.0也有这样的新特性,叫做可变参数, VarableParameter  用三个点表示。public static int add(int…y)  但是,JAVASCRIPT 不具备重载功能!

来自013.[JavaScript] 第8章 对象和数组[上](0)

在ECMA中,对象是一种数据结构:引用类型结构。用于将数据和功能组织在一起。虽然ECMAScript是一门面向对象的语言,但是它不是类。也不具备接口等。 Object类型(引用类型最多的)var box = new Object(); // 创建一个对象// new 关键字可以省略 document.write(box); /*对象包含:1,属性2,方法*/ box.name = "彭硕"; // 创建一个属性box.age=27; // 创建一个对象另外两种方法 var box2=Object();var box3={}; var box4={name:'好的',      //这里必须是逗号,age:29               // 这里没有标点。};// 属性也可以用引号来表示  对象引用一个外部函数:function objrun(){return '123';} var test = new Object();test.run = objrun(); document.write(test.run); 内部创建一个函数:// 自变量方法var test2={name:"nihao",age:10,run: function(){ //匿名函数return " 123";}}document.write(test2.run()); delete删除属性delete test2.name; // 删除属性

来自015.[JavaScript] 第8章 对象和数组[下](0)

对象中的方法:var box = ['Yanhui Lee',28,'Salt City',new Date()];document.write(box); document.write(box.toString()); document.write(box.valueOf()); document.write(box.toLocaleString()); // 本地格式区域字符串 join方法不按照逗号,而按照其他形式分割数组document.write(box.join("|")); 栈方法push( ) 和 pop( ) 方法 队列方法push( ) 和 shift( ) 方法 unshift-从前端删除方法 反转方法:reverse() 同时返回逆序数组。原数组也被逆序了。box.reverse();document.write(box); 排序方法:sort(),但有时候会出错,不要信任 以及带比较器的排序function compare(v1, v2){if (v1 < v2){return -1;}else if(v1 > v2){return 1;}else{return 0;}} var box =[0,1,5,10,15];box.sort(compare);document.write(box); 基于一个数组,创建一个新数组 concat( )var box =[0,1,5,10,15];var box2 = box.concat("hahah");document.write(box2); 切割原数组 slice( );var box =[0,1,5,10,15];var box2 = box.slice(1,4);  // [1, 3)document.write(box2); 方法splice( )var box3 =['0','1','5','10','15'];var box4 = box3.splice(0,2);// 从第0个位置取两个,而不是从第0个位置,取到第二个。并且删除掉远数组的内容。document.write(box4);document.write("<br/>"); var a =['0','1','5','10','15'];var b = a.splice(1,0,'江苏');document.write(a); // 远数组变化了。  

来自016.[JavaScript] 第9章 时间与日期[上](0)

1,Date类型new 方法创建一个日期对象var date = new Date();document.write(date); ECMA 提供了两个方法。属于静态方法,不用new Date一个是Date.parse( )  var a = Date.parse('4/12/2015');document.write(a);打印出的是毫秒值 // 如果是直接写,则默认调用Date.parsevar date = new Date('3/2/2015');document.write(date); 一个是Date.UTC( )按照世界统一时间,注意时差。月份是从0开始// UTC 格式document.write(Date.UTC(2015,3,9));// 传入年份和月份// 返回的是毫秒数值。 var date = new Date(Date.UTC(2015,3,10,13));document.write(date);  

来自017.[JavaScript] 第9章 时间与日期[下](0)

二,通用方法。与其他类型一样Date类型也可以返回valueOf, toString, toLocaleString, 但是返回方式有所不同。document.write(box);//Thu Nov 15 2007 17:22:45 GMT-0500 (EST)document.write(box.toString());//Thu Nov 15 2007 17:22:45 GMT-0500 (EST)document.write(box.toLocaleString());//11/15/2007, 5:22:45 PMdocument.write(box.valueOf());//1195165365015 三,日期格式化方法。document.write(box.toDateString());Thu Nov 15 2007document.write(box.toTimeString());17:22:45 GMT-0500 (EST)document.write(box.toLocaleDateString());11/15/2007document.write(box.toLocaleTimeString());5:22:45 PMdocument.write(box.toUTCString());Thu, 15 Nov 2007 22:22:45 GMT 四,其他方法。getTime 返回毫秒getFullYear 返回年份也可以设置年份setFullYeargetMonth 返回年费getHours,还有毫秒等。。 返回2015年 4月 9日document.write(today.getFullYear()+'年 '+(today.getMonth()+1)+'月 '+ today.getDate()+'日');   

来自001.[PHP] 第1章 PHP概述[1](0)

php也是脚本语言,只是运行在服务器端的脚本。

来自018.[JavaScript] 第10章 正则表达式[1](0)

两种方式创建正则表达式,一个是new 一个是字面量。 var box = new RegExp('a-Z');//必选传递一个匹配参数var box2 = new RegExp('a','ig')// 第二个参数是模式修饰符 var box3 = /box/; // 字面量方法创造正则表达式 不能加双引号var box4 = /box/ig; // 带有修饰符的正则表达式 i     忽略大小写g     全局匹配m     多行匹配 测试正则表达式 test方法     如果匹配成功,返回布尔类型exec方法     如果匹配成功,返回字符串 var pattern = new RegExp('Box'); // 模式var str = 'box';alert(pattern.test(str)); // 返回的是false 一句话匹配alert(/box/i.test("this is box")); // 一句话匹配 exect方法var pattern = new RegExp('Box','i'); // 模式var str = 'box';alert(pattern.exec(str)); // 如果有就返回数组的值(也就是box) 如果没有就返回null  

来自019.[JavaScript] 第10章 正则表达式[2](0)

String对象中的正则表达式方法 1 match方法,获取匹配数组(如果全局匹配),或者获取第一个字符串(不开启全局匹配) var pattern = /box/ig; var str= 'this is a Box! that is a box!'; document.write(str.match(pattern));// 返回的是一个数组, 如果没有全局查看,那么返回的是第一个数组。 2 search方法,找到匹配位置。无全局。 document.write(str.search(pattern));// 查找到第一个匹配位置,查找到就返回位置。(没有全局) 3 replace方法,替换字符串。(和JAVA一样) document.write(str.replace(pattern,'Tom')) 4 split 方法,拆分成字符串数组 var pattern = / /ig;document.write(str.split(pattern)); 正则表达式的静态属性: RegExp.input//当前验证的字符串RegExp.lastMatch//上一次匹配的字符串RegExp.leftContext//自配字符串的左侧。RegExp.rightContext//匹配到的字符串右边RegExp.lastParen (很多浏览器不支持)RegExp.multiline (很多不支持) 正在表达式的实例属性: pattern.global // 验证是否设置全局pattern.ignoreCase // 验证是否忽略大小写pattern.source // 匹配字符串 

来自020.[JavaScript] 第10章 正则表达式[3](0)

1, 元字符 .  表示任意匹配var pattern = /d.g/;var str = 'this is a d~g'; document.write(pattern.test(str)); 2,*表示重复匹配 0 个 或 多个var pattern = /do*g/;var str = 'this is a doooooooog'; document.write(pattern.test(str)); 3,+表示至少一个。var pattern = /do+g/;var str = 'this is a doooog'; document.write(pattern.test(str)); 4,?表示一个,或者0个。var pattern = /do?g/;var str = 'this is a dg'; document.write(pattern.test(str)); 5,{m,n}表示 匹配个数区间{3} 表示只有三次{3,}表示3次以上var pattern = /do{2,4}g/;var str = 'this is a dooooog'; document.write(pattern.test(str)); 6,[a-z]表示字母匹配[0-9]表示数字复合式:[a-zA-Z0-9]var pattern = /[a-z]og/;var str = 'this is a oog'; document.write(pattern.test(str)); 7,[^    ]表示去反,表示不在这里的数值[^0-9] 表示非0-9的字符 8,^[    ]表示从字符串的第一个字符开始匹配。//[a-z]表示字母匹配var pattern = /^[a-z]og/;var str = 'mogthis is a oog'; document.write(pattern.test(str)); 9,\w  = [a-zA-Z0-9_]   表示数字,字母和下划线 10,\W = [^a-zA-Z0-9_] 表示不能是数字,字母和下划线11, \d = [0-9] 表示0-9之间12,\D = [^0-9] 表示不能是数字13,^     $ 行首与行尾var pattern =/^go*gle$/ 那么就必须是字符串行首与行尾 

来自002.[JavaScript] 第2章 使用JavaScript(0)

 <script> 标签1, charset 属性可选。表示src属性指定的字符集。由于大多数浏览器忽略它,所以很少有人用它。2,defer 属性可选。表示脚本延迟到文档完全被解析和显示之后再执行。犹豫大多数浏览器不支持,故很少使用。3,language 属性已废弃。4,src可选。表示包含要执行代码的外部文件。5,type必选。可以看做是language的替代品。表示代码使用的脚本语言的内容类型。type=“text/javascript" 当JS代码越来越复杂的时候,需要利用外部文档来加载。同时,外部使用不会出现使用alert(‘</script>’); 的问题。 注意事项: script不支持单行标签<script type="text/javascript" src="1_demo.js”/>必须使用<script type="text/javascript" src="1_demo.js”></script>同时,如果外部使用时,内部就执行不到了。<script type="text/javascript" src="1_demo.js”>     这部分内容无法执行。</script> 当对方禁用javascript,可以加下面代码以示提示。<noscript>本站必须启用javascript</noscript>

来自003.[JavaScript] 第3章 语法、关键保留字及变量(0)

一,语法构成区分大小写:Text text是两种不同的标识符标识符组成:字母,数字,下划线,美元符号。(开头不能是数字)literal 字面量(常量):100 数字字面量“哈哈” 字符串字面量ture 布尔字面量正则表达式字面量对象字面量{x:1,y:2} 对象字面量表达式[1,2,3,4,5] 数组字面量表达式 二,关键字与保留字关键字:程序已经开始使用的字:var alter 保留字:保留字不是关键字,但是将来可能是关键字。比如abstract, import, public, double, class, enum, int, short, super, long, extends,….. 二,变量声明,初始化var box=100;如果没有赋值,系统默认会给一个undefined但如果没有声明,就属于一个错误。属于若类型语言变量类型是可以改变的但是,在定义时,往往会定义出类型。如boxString,所以后期维护成本很高,隐形危险也很大。 ps单行多语句,必须有分号,多行可以没有。var a=1; var b=2; var a=1var b=2 但是这样的编程风格很不好。 如果同时定义多个变量,可以用逗号。var box=“haha”,high=28,s;当然,缩进的话,效果更好。var a=1,     b=2,     c=3; 

来自004.[JavaScript] 第4章 数据类型[上](0)

ECMA Script 有五种简单的数据类型:undefined、null、boolean、number、string一种复杂的数据类型 object不支持自定义类型。 typeof 操作符,用来检测变量的数据类型。document.write(typeof 124);document.write(typeof 'hahahah');用法就是直接够跟需要操作的数据比如typeof 123当然也可以用typeof(123)但是要明确typeof不是函数。 // 未定义,返回undefinedvar box;document.write(typeof(box));document.write('<br/>'); // boolean类型var check= true;document.write(typeof(check));document.write('<br/>'); // string类型var str= "hahahah";document.write(typeof(str));document.write('<br/>'); // number类型var num=100;document.write(typeof(num));document.write('<br/>'); // object类型var dog={};document.write(dog); // 返回值是[boject object]document.write(typeof(dog));document.write('<br/>'); // null类型 属于object,但是属于另外一种类型var nul=null;document.write(typeof(nul));document.write('<br/>'); // function 类型function cat(){ }document.write(cat);document.write(typeof(cat)); undefined 与null 的关系document.write(undefined == null); // truedocument.write(undefined === null); // false 数据类型与boolean的转换