• Javascript s02


    s02

    1.包装对象

             在调用基本数据类型的变量的方法或属性时,JS会自动将该变量包装成对象

             每一种数据类型都有他的构造函数调

             用完后,又变回原来的样子.

             属性为只读的,不改变原始对象的值

            

             普通对象上调用方法,则有可能会改变原始变量的值

            

             null  和 undefined 没有包装对象

            

    2.对象的比较,值传递与引用传递

             JS的'=='和PHP的'==='一样       

             在JS中,如果new出来的两个对象,属性相等,用==去比较,是false.

            

             值传递

             string number boolean null undefined

             引用传递

             object function array

             数组也是object

            

            

    3.数据类型的转换

                       Number() :将传入的内容转为整数或小数,只能进行10进制的转换,不能出现非法尾字符

                       parseInt() :将传入的内容转为整数.

                       以0x开头的parseInt(),将按16进制的解析.

                       parseFloat() :

                       前导空格,都会自动丢掉

    数据类型转换

    ======================================================================================

                                转为字符串     数字                   布尔值              对象

    undefined         "undefined"     NaN          false          throws TypeError

    null            "null"                 0                false          throws TypeError

    --------------------------------------------------------------------------------

    true           "true"                1                                            new Boolean(true)

    false          "false"               0                                            new Boolean(false)

    --------------------------------------------------------------------------------

    "" 空字符串                      0                false                   new String("")

    "1.2" 数字字符串           1.2             true           new String("1.2")

    "one"                                    NaN          true                    new String("one")

    --------------------------------------------------------------------------------

    0                "0"                                                  false          new Number(0)

    -0               "0"                                                  false          new Number(-0)

    NaN          "NaN"                                            false          new Number(NaN)

    Infinity      "Infinity"                    true           new Number(Infinity)

    -Infinity    "-Infinity"                   true           new Number(-Infinity)

    1 非0正数     "1"                                        true           new Number(1)

    -1 非0负数    "-1"                              true           new Number(-1)

    --------------------------------------------------------------------------------

    {}任意对象       注1           注1                    true

    []空数组  ""               0                          true

    [9]单元素数组         "9"            9                true

    [1,2]          注2           NaN                    true

    ["a"]          注2           NaN                    true

    function(){}       注1           NaN          true

                      

                      

    3.运算符

    一元运算符

    ++  --  + - ~ ! delete  typeof void                 

    ----------------------------------------

    二元运算符

    *  /  %

    +  -

    + 字符串连接符

    -----------------------------------------

    << 

    >> 

    >>> 

    ------------------------------------------

    >   <   >=  <=

    instanceof

    in

    ------------------------------------------

    ==

    !=

    ===

    !==

    -------------------------------------------

    &

    ^

    |

    &&

    ||

    ?:

    --------------------------------------------

    =

    +=  -=  *=  /=  &=

    ^=  |=  <<=  >>=  >>>=

    --------------------------------------------

    ,

    --------------------------------------------      

             a.字符串连接与加法运算

                       只有两个数相加,结果才是数

                       任何东西与字符串相加,结果就是字符串,字符串优先

                       对象如何转为普通值

             b.调用  valueOf() 或 toString()方法;

            

             c.运算符的结合性

                       1. +号是从左往右运算

                                alert(1+2+'3'); //string 33

                                因为是二元运算符

              

                       2. =赋值运算,从右往左

                                var i=j=7;  //结果全是7

                               

                       3. 一元,三元运算符是从右往左

                       var a=ture;

                       var b=ture;

                       var c=fales;

                      

                       var x=a?b:c?false:2;  //从右往左

                      

                       4.自增运算

                                变量的自增或自减,不是整个表达式结束后,才发生,而是使用一次,就自增(自减);

            

                       5.NaN特殊的数

                                自己不等于自己的

                                if(a!=a){}

                                isNaN()

            

                       6.boolean

                                         if(true=1)  //true

                                         if(true=2) //false

                                         会把boolean值转为数字

                                        

                       7.delete     //php中的unset

                      

                       8.in    

                      

                       9.instanceof

                       var arr=new Array();

                       alert(arr instanceof Object); //true 数组是对象的实例

                      

                       10. 逗号运算符

                       从左往右运算

                       var j=1;

                       for(var i=0;i<3;j=i,i++){

                                document.write(j);

                       }

                       输出 101;

                      

                       11. ~ 按为非   按为非

                       //10进制的5,二进制是多少 101

                       10进制的-6转化为内存的二进制是多少

                      

                       源码

                       10000000 00000000 00000000 00000110

                       反码

                       11111111 11111111 11111111 11111001

                       补码  反码+1

                       11111111 11111111 11111111 11111010

                      

                      

    4.语言结构              

             if(){}eles{}

             switch(){}   要注意,里面case用的是===来判断的

             while(){}

             do while()

             for

             **for...in...   in  foreach  只有key没有value 数组就是下标,对象就是属性

             //数组就是下标

             var arr=[4,6,78];

             for(var i in arr){

                       document.write(i);   //相当与php $key

                      

                       document.write(arr[i])   //相当与php $value

            

             }

            

             //对象就是属性

             var obj={name:'张三',age:18};

             for(var j in obj){

                       //document.write(obj.j);

                       document.write(j);  //只能拿到属性名

             }

                      

             尽量少用for...in...

             要求用for循环遍历数组      

            

            

    5.try ...catch ...finally

            

             finally中的代码始终被执行

            

             function test(){

                       try{

                      

                      

    6.

             只有索引数组,下标是整数的,没有php类似的关联数组

             []       空数组

             [,,]    几个成员?2个

             [1,,11] 几个?3个

             new Array();

             new Array(5);  这是什么意思?每个成员的值都是unidefined;

             new Array(4,5,6);    这是什么意思,代表数组有三个成员,值分别是4,5,6,下标分别是0,1,2;

             没有下标越界,访问不存在的下标,将得到undefined

            

             var arr=[2,4];

             arr['a']=5;

            

             alert(arr.length);   //2

            

             document.write(arr.a);  //变成对象的普通属性了

             document.write(arr['a']);

             arr['12']=6;       会转化为整数,和php一样

             arr[7.0]=6;                 会转化为整数,和php一样

             arr['7.0']=6;   字符串的

             arr[7.4]=6;     变成字符串的

            

             在最后加一个成员

             arr[arr.length]=值

             arr.push(值);

            

             不支持多维数组,但是值就是一个数组

                      

            

  • 相关阅读:
    Linux组件封装(三) Thread的封装
    Linux组件封装(二) 条件变量Condition的封装
    Linux组件封装(一) 互斥锁MutexLock
    迭代器适配器(二) general inserter的简单实现
    迭代适配器(一) back_insert和front_insert的简单实现
    priority_queue的简单实现
    svm简易例子——matlab版本
    讲座 on the connection between vision and language
    svm相关理解
    为什么深度学习有效?(why deep learning works)
  • 原文地址:https://www.cnblogs.com/wicub/p/3108885.html
Copyright © 2020-2023  润新知