JavaScript对象及基本运算符
Object类型
JavaScript对象
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:var obj={name:“小明”, age:“20”};
空格和折行无关紧要。声明可横跨多行: var obj={ name: "zeng ", age: "ni " };
对象属性调用:obj.属性名称 console.log(obj.name);
JavaScript数组
数组由中括号分隔。在中括号内部,数组的元素由逗号分隔:var arr =[" 30"," 20",“10"];
数组下标是基于零的,所以第一个的下标是 [0],第二个是 [1],以此类推。数组元素的调用:arr[数组下标]获得数组里的第一个元素: console.log(arr[0])
原始类型与Object类型有着根本区别
1.原始值是不可更改的。原始值的比较是值的比较,只有它们的值相等时才相等
2.对象是可变的,值是可修改的:
var obj={x:1};//定义一个对象
obj.x=2;//对象中属性x的值更改为2
obj.y=3;//增加新属性y
3.两个对象的比较并非值的比较,即使同样的属性和值 ,也是不相等。索引完全相等的两个数组也不等:
var obj={x:1},obj1={x:1}; //具有相同属性的两个对象
console.log(obj===obj1); //false,两个单独的对象永不相等
var a=[ ],b=[ ]; //两个单独的空数组
console.log(a===b); //false,两个单独的数组永不相等
对象的比较
通常将对象称为引用类型,对象的比较均是引用的比较,当且仅当它们引用同一个对象时,才相等。
var arr=[]; //定义一个引用空数组的变量arr
var arr1=arr; //变量arr2引用同一个数组
arr1[0]=1; //通过变量b来修改引用的数组
console.log(arr1[0]); //1
console.log(arr[0]); //1,变量arr也会修改
console.log(arr===arr1); //true,arr和arr1引用同一个数组,所以相等
运算符
运算符也可以叫做操作符。
主要学习以下运算符:
赋值运算符
算术运算符
+运算符
关系运算符
条件运算符
逻辑运算符
in运算符
delete运算符
赋值运算符=
1.赋值运算符并不是等于
如果我想把5这个值赋值给变量a 则:var a=5;
2.给定 x=10 和 y=5,下面的表格解释了赋值运算符:
运算符 | 例子 | 等价于 | 结果 |
---|---|---|---|
= | x=y | x=5 | |
+= | x+=y | x=x+y | x=15 |
-= | x-=y | x=x-y | x=5 |
*= | x*=y | x=x*y | x=50 |
/= | x/=y | x=x/y | x=2 |
%= | x%=y | x=x%y | x=0 |
算术运算符
1.算术运算符用于执行变量与/或值之间的算术运算。
2.给定y=5,下面的表格解释了算术运算符:
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
+ | 加 | x=y+2 | x=7 |
- | 减 | x=y-2 | x=3 |
***** | 乘 | x=y*2 | x=10 |
/ | 除 | x=y/2 | x=2.5 |
% | 求余数 | x=y%2 | x=1 |
++ | 累加 | x=++y | x=6 |
- - | 递减 | x=- -y | x=4 |
递增和递减
++表示的是变量的值加1
++i表示的是,先加1再执行
而i++表示的是先执行再加1
+运算符
1.用于把文本值或字符串变量连接起来。
2.如需把两个或多个字符串变量连接起来,请使用 + 运算符.
var str1=“今天是个";
var str2=“好天气!”;
var str3=str1+str2;
console.log(str3);
str3的结果是:今天是个好天气!
3.+运算符的隐式转换规则:
a.字符串与数字进行+拼接时,数字会隐式的转换成字符串
b.字符串与对象进行+拼接时,对象会隐式的转换成字符串
c.数字与null进行+拼接时,null会转换成数字类型
d.布尔值之间进行+拼接时,布尔值会转换成数字类型
e.null和undefined和数字进行拼接时,会转换成数字类型,null为0,undefined为NaN字符串与数字进行-号运算时,字符串会隐式的转换成数字类型
关系运算符(比较运算符)
1.关系操作符在逻辑语句中使用,以测定变量或值是否相等。
等于(==)的情况下 只要值相同就返回True
全等(===)的时候需要值和类型都要匹配才能返回True
关系操作符返回的是布尔值 true 或 false
2.给定x=5,下面的表格解释了关系运算符:
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
== | 等于 | x==8 | false |
=== | 全等(值和类型) | x=5 x=“5” | true,false |
!= | 不等于 | x!=8 | true |
> | 大于 | x>8 | false |
< | 小于 | x<8 | true |
>= | 大于或等于 | x>=8 | false |
<= | 小于或等于 | x<=8 | false |
3.纯数字之间比较console.log(1<3);//true
4.数字字符串比较,转换成ASCII码比较
console.log(“1”<“3”);//true
console.log(“123”<“123”);//false
console.log(“123"<“1234”);//true
5.纯字符串比较,先转成ASCII码
console.log(“j"<“k”);//true
console.log(“abc”<“aad”);//false,多纯字母比较,会依次比较ASCII码
6.汉字比较,转成ASCII码
console.log(“我”.charCodeAt());//25105
console.log(“的”.charCodeAt());//30340
console.log(“我"<“的”);//true
7.当数字和字符串比较,且字符串为数字。则将数字字符串转为数字 console.log(123<“124");//true
8.当数字和字符串比较,且字符串为非纯数字时,则将非数字字符串转成数字的时候会转换为NaN,当NaN和数字比较时不论大小都返回false. console.log(13>“abc”);//false
条件运算符(三元操作符)
表达式1?表达式2:表达式3
1.如果表达式1成立执行表达式2
2.进行表达式1的判断
3.如果表达式1不成立执行表达式3
4.例:var a=5,b=4;
console.log(a>b?“ok”:“no”);
逻辑运算符
用于把文本值或字符串变量连接起来。
与 && &&前后两个均为真的才可以
或 || ||前后有一个为真的就可以
非 ! !求当前的值得非
给定 x=6 和 y=3,下面的表格解释了逻辑运算符:
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
&& | and | (x<10&&y>1) | true |
|| | or | (x5||y5) | false |
! | not | !(x==y) | true |
逻辑与的运算规则
1.两边条件都为true时,结果才为true;
2.如果有一个为false,结果就为false;
3.当第一个条件为false时,就不再判断后面的条件
注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。
例:console.log( 5 && 4 );//当结果为真时,返回第二个为真的值4
console.log( 0 && 4 );//当结果为假时,返回第一个为假的值0
逻辑或的运算规则
字符串、非 0 数字、对象,将返回true ;空字符串、数字0、undefined、 null、NaN,将返回 false。
1.只要有一个条件为true时,结果就为true;
2.当两个条件都为false时,结果才为false;
3.当一个条件为true时,后面的条件不再判断
注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;
例:console.log( 5 || 4 );//当结果为真时,返回第一个为真的值5
console.log( 0 || 0 );//当结果为假时,返回第二个为假的值0
&& 优先级高于 ||
console.log(3||2&&5||0); //3
先算2&&5的值为5,然后再3||5----3,最后再3||0----3
逻辑非
首先会将他的操作数转化为一个布尔值,然后求反
流程控制语句
常用语句
条件语句 if
循环语句 for
选择语句 switch
循环语句 while
if语句语法
if ( 判断语句 ) {
语句1
}else {
语句2
}语句3
if英语里面的如果的意思,else就是否则的意思。else不要拼写为eles。
else并不是一定要出现才可以,可以只有if
如果要执行的语句,只有一行语句,那么就是单行if,就可以省略大括号。
var x= 60;
if(x>= 60)
console.log(“及格了”)
else
console.log(“不及格”);
多分支的if 语句语法
if (判断语句1) {
语句1}
else if (判断语句2) {
语句2
}
else {
语句3
}语句4
注意:else只能有一个。 else if可以有多个。
se就是否则的意思。else不要拼写为eles。
else并不是一定要出现才可以,可以只有if
如果要执行的语句,只有一行语句,那么就是单行if,就可以省略大括号。
var x= 60;
if(x>= 60)
console.log(“及格了”)
else
console.log(“不及格”);
多分支的if 语句语法
if (判断语句1) {
语句1}
else if (判断语句2) {
语句2
}
else {
语句3
}语句4
注意:else只能有一个。 else if可以有多个。