JavaScript基础

一、JavaScript基础


1.什么是JavaScript?


JavaScript是运行在客户端的解释性脚本语言;


扩展:


A.HTML、CSS、JavaScript都是在浏览器运行,所以称为客户端技术,会存在


浏览器兼容性;



B.所有的编程语言执行方式有两种:编译、解释;


C.JavaScript与Java之间不存在任何关系;


  (小故事:JavaScript最早命名为LiveScript,但为更好推广该产品,于是在


  征得Sun同意的情况下,将其命名为JavaScript)


D.JavaScript是Netscape(网景)公司在其Netscape Navigator浏览器中首先推出的;


E.Microsoft在其IE浏览器中推出JScript与JavaScript抗衡;



F.Netscape将JavaScript提交ECMA(欧洲计算机制造商协会),建议


其JavaScript定立为脚本语言的标准,最后定立脚本语言的标准--ECMAScript[简称ES](基本上与JavaScript1.5相同);


所有的浏览器都兼容ECMAScript262-3的标准;


ECMAScript最新版本为ES-6;


G.JavaScript的由ECMAScript、DOM、BOM组成;


H.在EMAScript中规定数据类型、关键字、保留关键字、流程控制语句、内置对象等;


I.如果JS代码既存在服务器代码,又存在客户端代码,那么先运行服务器脚本,然后再运行客户端脚本;


二、JavaScript语法结构


1)引入外部的JS文件


JavaScript文件的扩展名为.js


<script type="text/javascript" src="JS文件URL"></script>


2)书写于文档内部


<script type="text/javascript">


    ...

    ...


</script>


JavaScript语法结构说明:


A.JS严格区分大小写;


B.每行JS代码"必须"以分号结尾;


三、变量


3.1)什么是变量?


变量是指存储在内存有名称的信息,其值在程序运行期间可以发生变化;


3.2)声明变量


var 变量名称;


var 变量名称 = 值;


说明:


A.var关键字可以省略,但不建议省略;


B.变量必须以字母或下划线开头,包含字母、数字、下划线,但不能包含空格、斜线、反斜线等特殊符号;


C.变量名称禁止与系统关键字、保留关键字相同;


3.3)关键字


var、if、else、switch、case、break、for、in、do、while、function


3.4)保留关键字


float、class、integer、boolean、string、interface、extends、implements、public、protected、private



四、数据类型


undefined(未定义),是指声明但没有赋值或赋值为undefined的变量或未定义返回值的函数或方法;


string:必须括在单引号或双引号之间;


转义符


\n,换行


\r,回车


\t,水平制表符


\v,垂直制表符


\f,换页(走纸)


\\,反斜线


\',单引号


\",双引号


number,数值或浮点数;


boolean,布尔型,结果只能为true或false;


function,函数,实现一次定义,多次调用;


object,对象


null:空值(如断开继承时)


在通过typeof()函数进行测试时,undefined的类型为undefined,而null的类型为object



五、流程控制语句


1)if语句


  if(条件表达式){

    执行代码

    ...

  }


 2)if...else语句


  if(条件表达式){

    执行代码

    ...

  } else {

    执行代码

    ...  

  }

3)if...else if..else语句

  if(条件表达式){

    执行代码

    ...

  } else if(条件表达式) {

    执行代码

    ...  

  } ... else{

    执行代码

    ...    

  }


4)switch


  switch(测试表达式){

   case 值1:

   ...

   break;

case 值2:

   ...

   break;

   ...

   default:

   ...

   break;

  }


  说明:switch将进行全等运算;


5)for语句


  for(expression1;expression2;expression3){

   执行代码;

   ...

  }


6)while语句


  while(条件表达式){

执行代码;

...   

  }


7)do...while语句


  do{

   执行代码;

   ...


  } while(条件表达式);


8)for...in语句


for(key in array/object) {

执行代码;

...



ES5中支持数组的forEach()方法


array.forEach(function(value,index){

执行代码;

...

});



六、运算符


6.1)字符运算符: + 


6.2)数学运算符:+(正数)、-(负数)、*、/、%、+、-


6.3)自增/自减运算符: n++、n--、++n、--n


    后缀形式:先使用,后加减


    前缀形式:先加减,后使用


6.4)比较运算符:>、>=、==、!=、===、!==、<=、<


6.5)逻辑运算符:!、&&、||    

 

七、内置对象


7.1)String对象


声明string对象


直接量方式


var 变量名称 = '值'; 


var 变量名称 = "值";


构造函数方式


var 变量名称 = new String('[值]')


属性


length


描述:获取字符串的长度


语法:int object.length


方法

toLowerCase()


描述:字符串转换成小写


语法:string object.toLowerCase(void)


toUpperCase()


描述:字符串转换成大写


语法:string object.toUpperCase(void)


substr


描述:截取字符串


语法:string object.substr(int start[,int length])


说明:


A.字符从0开始编号;


B.如果没有指定length参数,则返回从开始位置到字符串结尾之间的内容


C.如果start参数为负数,则倒数;


substring


描述:截取字符串


语法:string object.substring(int start[,int end])


说明:


A.如果没有指定start参数,则返回从开始位置到字符串结尾之间的内容


B.包含起始位,但不包含结束位;


replace()


描述:字符串替换


语法:


string object.replace(string search,string replacement)


string object.replace(object RegExp,string replacement)


search()


split()


描述:拆分字符串


语法:


array object.split(string delimiter)


array object.split(object RegExp)


7.2)Math对象


说明:Math对象是一个静态对象;


访问属性


Math.属性名称


调用方法:


Math.方法名称()


属性


Math.PI


Math.SQRT2


方法


Math.ceil()


描述:进一取整


语法:number Math.ceil(number arg)


Math.floor()


描述:舍一取整


语法:number Math.floor(number arg)   


Math.pow()


描述:幂运算


语法:number Math.pow(number base,number exp)   


Math.sqrt()


描述:获取平方根


语法:number Math.sqrt(number arg)  


Math.random()


描述:产生随机数(0<=n<1)


语法:number Math.random(void)   


round()


描述:四舍五入(只能保留到整数位)


语法:number Math.round(number arg)


7.3)Date对象


创建Date对象


var 变量 = new Date();


方法


getYear()


描述:获取年份(从1900年到现在经历的年份)


语法:int object.getYear(void)


getFullYear()


描述:获取年份


语法:int object.getFullYear(void)


getMonth()


描述:获取月份(返回范围为0~11)


语法:int object.getMonth(void)


getDate()


描述:获取是该月的第几天


语法:int object.getDate(void)


getDay()


描述:获取星期的第几天(0为星期日,依次类推)


语法:int object.getDay(void)


getHours()


描述:返回小时(范围为0~23)


语法:int object.getHours(void)


getMinutes()


描述:返回分钟(范围为0~59)


语法:int object.getMinutes(void)


getSeconds()


描述:返回秒数(范围为0~59)


语法:int object.getSeconds(void)


getMillseconds()


描述:返回毫秒数(范围为0~999)


语法:int object.getMilliseconds(void)


getTime()


描述:返回毫秒级时间戳


语法:int object.getTime(void)


7.4)Array对象


创建Array对象


构造函数方式


var 变量名称 = new Array(int length)


var 变量名称 = new Array(value,value,...)


直接量方式


var 变量名称 = [[value][,...]]


属性


length


描述:获取数组成员数量


语法:int object.length


方法


push()


描述:在数组的未尾添加一个或多个成员


语法:int object.push(mixed value[,...])


unshift()


描述:在数组的开头添加一个或多个成员


语法:int object.unshift(mixed value[,...])


shift()


描述:删除数组的第一个成员,并且返回该成员


语法:mixed object.shift(void)


pop()


描述:删除数组的最后一个成员,并且返回该成员


语法:mixed object.pop(void)


join


描述:将数组成员使用分隔符连接成字符串


语法:


string object.join(void)


string object.join(string separator)


7.5)RegExp对象


直接量方式


var 变量名称 = /正则表达式/[修正符]


构造函数方式


var 变量名称 = new RegExp('正则表达式'[,修正符])


修正符


g(global),全局


i(ignore),忽略大小写


元字符


\s,匹配任何空白,等价于[\n\r\t\v\f]


\S,匹配任何非空白,等价于[^\n\r\t\v\f]


\d,匹配任何数字,等价于[0-9]


\D,匹配任何非数字,等价于[^0-9]


\w,匹配任何单词字符,等价于[0-9a-zA-Z_]


\W,匹配任何非单词字符,等价于[^0-9a-zA-Z_]


.,匹配除换行外的任何字符


转义符


\n,换行


\r,回车


\t,水平制表符


\v,垂直制表符


\f,换页(走纸)


\\,反斜线


\',单引号


\",双引号


\.,点本身


\|,竖线


\[,左侧方括号


\],右侧方括号


\(,左侧圆括号


\),右侧圆括号


\{,左侧花括号


\},右侧花括号


\?,问号


\*,星号


\+,加号


量词


?,匹配零次或一次,等价于{0,1}


*,匹配至少零次,等价于{0,}


+,匹配至少一次,等价于{1,}


{m},匹配m次


{m,},匹配至少m次


{m,n},匹配至少m次,至多n次


test()


描述:检测字符串是否符合正则表达式的规范


语法:boolean object.test(string str)




      本文转自xinrenbaodao  51CTO博客,原文链接:http://blog.51cto.com/11832904/1913638,如需转载请自行联系原作者




上一篇:Google+无法取代个人博客


下一篇:Linux 安装中文包