运算符
(1) 其他数据类型转换为Boolean;
string->Boolean;
var a="";
a="hello"
a=Boolean(a);空串为false其余的为true。
Number->Boolean
a=123;
a=-123;
a=0;
a=NaN;
除了0和NaN其余的都是true。
a=null;a=undefined; ——》false
object->Boolean为true。
(2)基本运算符 + - * / %
1:+号运算符,在用于字符串相加时结果为一个字符串拼接;
var a="123";
a=a+"456"=”123456”;
我们可以利用这个隐式的方法将其他类型转换为字符串类型。
a=123+”” +个空串可以把a转换为字符串“123”.
我们可以利用+将其他类型转换为String类型,- / * 将其他类型转换成Number类型.
2:单目运算符 + -表示正好,负号,typeof
a=+"123" 我们也可以通过+运算符将其他运算符转换为Number类型的运算符。
3:自增++ 自减运算符 –
a++ ,++a ,--a ,a--;a=20
a=a++;//表示的是自增前的值 a=20;
a=++a;//++a表示自增后的值 a=21;
--同理 –-a 表示的自减后的值,a—表示的是自减钱的值。
4:逻辑运算符
!&& || 与或非运算符
!运算符将其他类型转换为Boolean类型在取反 true->falsefalse->true
&& and 运算符 必须都为真结果为真否则为否
|| or 运算符 一个真就为真,两个假都为假。
b=123&&456=456 两个都为真则返回第二个值因为计算机运算的规则
true&&true 因为 需要判断第二个所以返回第二个值。
False&&true 不需要判断第二个直接返回第一个值。//JS中可以,C++,JAVA不可以,这样运算。
5:赋值运算符(= ,+= ,-=,*=,/= ,%=)
a=a+10等价于a+=10;其余的类似。
6:关系运算符
大于,小于,等于> < ==;
(1) console.log(NaN==NaN);NaN类型与任何值进行比较结果都为false。
我们可以通过isNaN()函数判断值是否为NaN.
(2) console.log("abc">"b"); 结果为false 字符串类型进行比较会一个位一个进行比较,比较的是字符串编码。”a”<”b”编码。
(3)console.log("123">1);字符串类型于Number类型比较会转换成Number在比较.
(4)undefined==null 结果为真。0==null结果为假,没有转换成Number类型进行比较。
7:条件运算符(三元运算符)
a=10>20?a:b;
a=a>b?(a>c?a:b):(b>c?b:c);表示求三个数的最大值。
8:对象:用构造函数创建一个对象 var a=new Object;
8:
8:对象:用构造函数创建一个对象var a=new Object;
(1)var a=new Object;//创建一个对象
a.name="123";//给对象的属性赋值
deletea.name;//删除对象的属性
console.log(a.name);
var a=new Object;
a["name"]="张三"//属性名可以写在[“”]中,里面必须是字符串。
console.log(a["name"]);
a["name"]="张三"
varn="name";//可以更加灵活的改变。
console.log(a[n]);
(2)
var a=2,b=1;
a=b;
b++;
console.log("a的值为"+a);
console.log("b的值为"+b);
由于a,b变量的值储存在栈内存中的,他们各自的存放的地址不同,所以他们是相互独立的,并发生改变与a值无关。
var a=new Object;
var b=new Object;
a.name="张三";
b.name="李四";
a=b;
console.log(a);
console.log(b);
a.name="小米";
console.log(a);
console.log(b);
对象赋值则他们属于同一个地址,对象空间开辟存放在堆内存中,a,b,对象在栈内存中存放的是对象在堆内存的地址,我们将b对象赋给a,他们拥有的空间是一样的所以,其中一个值得改变就会影响另一个值得改变。
var obj={
name:"猪八戒",
age:"1000000",
sex:"男",
hobby:"女"
};
console.log(obj);
obj常量的初始化类似于数组a[5]={1,2,3,4,5};
(2) 函数。函数用来放置代码块。需要运用的时候直接调用。
//函数的初始化
varfun2=function()
{
console.log("123456");
}
fun2() ;//调用这个函数
//function fun2(a,b)
{
console.log("这是第一个函数");
}
fun2(1,2);
调用函数时,解析器不会检查实参的类型和数量,(可能插入非法的数值,需要检查)多余的实参不会被赋值。