您的位置:首页 > Web前端 > JavaScript

前端笔记十四 JavaScript语法详解

2016-03-16 22:40 696 查看
强制类型转换函数
toString():将布尔值、数值等转换成字符串
parseInt():将字符串、布尔值转换成整数
parseFloat():将字符串、布尔值等转换成浮点数

JavaScript中没有块范围,输出函数中局部变量会覆盖全局变量,即使出了局部函数的范围依旧起作用
在定义变量的过程中,如果使用var则强制定义一个新变量,如果没有var则系统会优先在当前上下文中是否存在该变量,如果没有这个变量才会重新定义一个新的变量

科学技术法表示数值:<num1>E<num2>表示num1*10的num2次方;如5E2=500,1.23e-3=0.00123
Number类的常量与特殊值的对应
Number.MAX_VALUE:数值型变量允许的最大值
Number.MIN_VALUE:数值型变量允许的最小值
Number.POSITIVE_INFINITY:Infinity,正无穷大
Number.NEGATIVE_INFINITY:-Infinity,负无穷大
Number.NaN:NaN,非数

字符串类型,String类有如下的基本方法和属性
String():构建一个字符串
charAt(num):获取字符串第num个字符,从0开始数
charCodeAt(num):返回字符串中第num个字符所对应的Unicode值
length:返回字符串长度
toUpperCase():所有字母变为大写
toLowerCase():所有字母变为小写
fromCharCode():将Unicode值转换为字符串
indexOf(searchString [,startIndex]):搜索目标字符串searchString出现的位置,不搜索前startIndex个字符
lastIndexOf(searchString [,startIndex]):搜索目标字符串searchString最后一次出现的位置,不搜索前startIndex个字符,没有的话返回-1
substring(start [,end]):从start处开始,截取到end(不包括)处的字符
slice(start [,end]):从start处开始,截取到end(不包括)处的字符,但可以使用负索引值,最右边的索引为-1
match(),search() :使用正则表达式搜索目标字符串
concat():将多个字符串拼加成一个字符串
split():将某个字符串分隔成多个字符串,可以指定分隔符
replace():将字符串中某个子串以特定字符串代替

undefined表示某个变量不存在
null表示某个变量值为空

正则表达式:支持的字符较多,自行查阅

复合类型:是由多个基本数据类型组成的数据体
Object:对象类
Array:数组类
Function:函数类
Date:日期类
Error:错误类
Math:数学类,包含相当多的执行数学运算方法,常用的有pow,sqrt,random
Number:数值类
String:字符串类

数组的三种表达方法:
var a = [3 , 5 , 23];
var b = [];
var c = new Array();

位运算符:
&:按位与
|:按位或
~:按位非
^:按位异或
<<:左位移运算符
>>:右位移运算符
>>>:无符号右移运算符

比较运算符:
>:大于
>=:大于等于
<:小于
<=小于等于
!=:不等于,只是数值不相等,忽略数据类型的比较
==:等于
!==:严格不等于,如果前后两个数值不相等或者数据类型不同,则返回true
===:严格等于,必须前后两个的值相等且数据类型以相同,才会返回true

三目运算符:(expression) ? if-true-statement : if-false-statement;

逗号运算符:将多个表达式排在一起,整个表达式返回最右边表达式的值,如a = (b=5,c=6,d=56),则a=56

void运算符:强行指定表达式不会返回值

typeof(a)运算符:返回a的数据类型,可有以下几种
undefined值:undefined;
null值:object;
布尔型值:boolean;
数字型值:number;
字符串值:string;
对象:object;
函数:function;
instanceof运算符:判断某个变量是否为指定类的实例,如 a instanceof Array

语句块:使用花括号包含的多个语句,语句块是一个整体的执行体,类似于一个单独的语句
空语句:”;” 常在循环体中出现
异常抛出语句:throw new Error(errorString);
异常捕捉语句:当程序出现异常时,可以使用catch来捕捉异常
语法--try{statements} catch(e){statements} finally{statements}
首先执行try语句,如果try内出现错误,则自动跳转到catch块执行,finally块总能得到执行的机会

with语句:例如,如果with(document)则在statements中可以省略书写document
格式 with(object){statements}

流程控制:
1、if语句
①if(logic expression){statement..}
②if(logic expression){statement..} else {statement..}
③if(logic expression){statement..} else if(logic statement) {statement..} else {statement..}
2、switch语句
switch(expression){
case condition 1:statement..;
case condition 2:statement..;

case condition n:statement..;
default: statement;
}
3、while语句:先判断,后执行
while(expression){statement..};如果expression为true则执行expression,否则不执行expression
4、do while语句:先执行,后判断
do{statement} while(expression)
5、for循环
for(initialization; test condition;iteration statement){statement..}
6、for in 遍历
for( index in object){statement}
7、break结束整个循环,continue结束本次循环

函数:
1、定义命名函数
function functionName(parameter-list){statement..}
2、定义匿名函数,这个在最后面需要加一个分号
function(parameter list) {statement..};
3、使用Function类匿名函数
var Function(’name’,”document.writeln(‘Function定义的函数<br>’)”+”document.writeln(‘你好’+name);”);
4、递归函数
5、局部变量与局部函数,局部函数只有在调用全局函数的时候才会运行
6、如果直接定义一个函数没有附加对象,则会自动附加给window对象上

函数的实例属性和类属性
局部变量:普通方式定义的变量
实例属性:在函数中以this前缀修饰的变量,每个实例的属性值都可能不同
类属性:在函数中以函数名前缀修饰的变量

调用函数的三种方式
1、直接调用该函数
2、以call()方法调用函数;调用者.函数(参数1,参数2...)=函数.call(调用者,参数1,参数2...)
3、以apply()方法调用函数,与call()类似,但是,call需要在括号内详细的列出每个参数,apply中可以在括号中以argument表示所有参数

可以通过prototype属性来对原函数进行扩展,实现“伪继承”

使用key:value的形式来创建对象即为使用JSON语法,在KV对后面都要有个逗号,但是最后一个后面没有逗号。
JSON也可以用来创建数组,如
①var a =new Array(‘aaaa’,’nonono’);
②var b = [‘aaaa’,’nononono’];arr=[value1,value2…];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: