表达式
原始表达式
1.表达式是编程程序的最小单位,是代码的最小单位,而原始表达式是最小单位的表达式,不可再分割。
2.原始表达式包含直接量、关键字(保留字)和变量名
eg:
var a=20;//var是声明,a是变量名,20是直接量
//直接量一般有:数字eg:1,2.6;字符串eg:“hello word”
保留字(关键字)一般有:true/false/this
变量名一般有:a,b,c,d,name,age,class
数组初始化表达式
1.Javascript中的数组是放数组的容器
eg:
var arr=[10,20,30,"hello"];
//给arr数组赋值时之前没有数据,现在赋值就是初始化,
数组里可以放任何数据类型number,string,null,
undefined,true,false等,数组也可以放入数组中。
2.如何取出数组中的数据
eg:
var arr=[10,20,30,null,undefined,"hello"];//定义一个数组
var re=arr[3];//定义一个变量re,将数组中下标为3的数据赋值给re,
数组的下标是从0开始不是1开始。所以 var re=null
console.log(re);//打印re的值为null
数组的长度Length是数组的最后一个下标加1
eg:
var arr=[1,,,,2];//数组真实数据只有1和2,没有数据的空白也会占空间有长度,
所以该数组的长度为5
var re=arr[3];//下标为3的数据未定义,所以为undefined
var re=arr[8];//下标为8超出了数组的元素的下标,系统会补充,值为undefined
console.log(re);
以上数组成为稀疏数组,它的Length不真实
对象的初始化表达
1.由花括号{}和其内用逗号(英文状态 ,)分隔开的列表构成
eg:
var obj={name:"Alice",age:18};//创建了一个对象obj,它有name和age两个属性
name和age是属性名,Alice和18是它的属性值
var obj1={{shool:xxx},name:jack,age;20}//可以嵌套
2.取数据的方法有两种:点语法和[ ]语法
点语法:
eg:
var obj={name:"Alice",age:18};
obj.name="Alice";
obj.age=18;
obj.class=02;//为对象添加class属性值为02
console.log(obj)
[ ]语法
eg:
var obj={name:"Alice",age:18};
obj["name"]=Alice;
obj["age"]=18;//一定要用””括起来
函数定义表达式
1.表达式的值是这个新定义的函数
2.访问函数只通过变量名,所以设不设函数名字都可以
函数声明表达式eg:
function fn(){}
3.return
eg:
function fn()
{
return 100;
}
return后面可以写数据也可以不写数据,函数运行到return时就会停止运行
不写return或者不写return后面的数据,都会产生返回值undefined
运算符
1.~表示取反回数值的反码
eg: 00000001
000000010
2.~~常用来去除小数,取整数(一般不怎么用)
3.^表示按位异或
eg:
var a=10;
var b=20;//需要得到a=20,b=10;
a=a^b;
b=a^b;
a=a^b;
逻辑表达式(重点)
1.&&逻辑与
1.左右两边只要是js的表达就是正确的语法
2.表达式A转化为布尔值,结果
为真 整个表达的结果就是表达式B
为假 整个表达式的结果是表达式A 代码不会运行B表达式
eg:
var re=20*50&&a=30;
var a=20;
var c=a>50&&(b=30);
console.log(a)//20;
console.log(c);//a>50为false表达式的结果就为a>50
console.log(b)//没有定义变量b,回报错;
var c=(a=30)&&(b=40);
a=30;// 隐式声明变量a=30
b=40;//隐式声明变量b=40
console.log(a)//30
console.log(b)//40
console.log(c)//a=30为true,所以表达式的值为40
2.||逻辑或
1.左右两边只要是js的表达就是正确的语法
2.表达式A转化为布尔值,结果
为真 整个表达的结果就是表达式A, 代码不会运行B表达式
为假 整个表达式的结果是表达式B
eg:
var re=20*50||a=30;
var a=20;
var c=a>50||(b=30);
console.log(a)//20;
console.log(c);//a>50为false表达式的结果就为30
console.log(b)//没有定义变量b,回报错;
var c=(a=30)||(b=40);
a=30;// 隐式声明变量a=30
b=40;//隐式声明变量b=40
console.log(a)//30
console.log(b)//40
console.log(c)//a=30为true,所以表达式的值为30
赋值运算符
eg:a=a+1,用赋值运算符表示为a+=1
其他赋值运算符同理