JavaScript基础学习(二)

来源:互联网 发布:安卓多线程编程实例 编辑:程序博客网 时间:2024/05/29 08:43

运算符

(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);     

调用函数时,解析器不会检查实参的类型和数量,(可能插入非法的数值,需要检查)多余的实参不会被赋值。

原创粉丝点击