JavaScript基础语法

1. var定义的变量

     var定义的变量是其作用域内的局部变量,例如一个函数内部定义的变量,出了函数就不可使用了.

     var message ; 未进行初始化的变量, 会保存一个特殊的值 undefined.

     省略var直接使用的变量, 则表示为全局变量, 不推荐这种定义类型, 会造成混乱.

     var name = "kevin" ,

            age    = 10 ,

            birth   = "19090202" ;

     此时, 中间的符号要用 , 而不是 ;

2.数据类型

    5种简单的数据类型 Undefined  Boolean , Number , String . function

    1种复杂的数据类型 Object

     不支持自己创建数据类型 . ( 以上 6 种就是类型的全部 ) function 也算是一种类型 , 尽量声明时就初始化, var message = "" ;

     underdefined : var message 只是定义但是没初始化的话, 那么就是 underdefined 类型, ( 尽量定义时就初始化 )

     null 值表示一个空对象指针. ( typeof(null)) 返回  object 类型.

      如果打算将一个变量保存对象的内容, 则最好在初始化是直接使用Null , var car = null ; 这样在后边只要检查 null 值就知道相应的变量是否已经保存了一个对象的引用了,例如

      if (car != null){

           // 对 car 对象执行操作,

      }

     typeof 用来确定类型, 因为是松散的, 所以需要 typeof

     alert( typeof 95 ) ; 显示的是 Number .

     Boolean 只有2中情况 , true false 注意是区分大小写的 , 并且 1 并不等于 true, 要使用 boolean( 1) 来进行转换成 boolean类型

     Null 只针对对象类型的

     Number : var nu = 12 ;    //10进制

                       var nu = 07 ;    // 八进制

                       var nu = 091 ; // 由于超过了 8 , 所以变成, 前边0无效, 后边91为10进制数

                       var nu = 0xA ; //十六进制 , 超过后,不符合规则同上

                       var nu = 0.1 ;  // 浮点数必须要有小数点 .

                       不要进行小数的比较, 例如 0.1 + 0.2 不等于 0.3 所以

                       a = 0.1 ;

                       b = 0.2 ;

                       if ( a+b == 0.3 ) 这个判断是不通过的

                       ( 如果数太大则自动转成 infinity , 太小 -infinity ( 正负无穷 ) )

    NaN : 非数值 not a number , 是指当计算时得出非法内容时, 则返回 NaN 类型, 例如 当除数为 0 时, 返回的结果就是 NaN 类型. 任何与 NaN类型操作的结果都是 NaN, 2个NaN也不相等 . 判断 NaN == NaN 是错误的 .

                isNaN( NaN )    // 返回 true

                isNaN(100)       // 返回 false 因为可以转换成数字

                isNaN("blue")   // 返回 true , 不能转换成数字

                isNaN(true)       // 返回 false , 转换成 1

     数值转换 : Number() , parseInt() , parseFloat()

                Number() ; 如果是 boolean类型, 则 true = 1 , false = 0

                                     如果是 null , 则返回 0

                                     如果是 undefined , 则返回 NaN

                                     如果是字符串 : ( 只是数字 , 转换成数字 , 空的转换成 0 , 包含其他字母 转换成  NaN )

                parseInt() , parseFloat() 只是针对 字符串类型进行处理, 相对比 Number()更合理一些.

      String 类型 : \n 换行 , \b 空格 , \t 制表 , \r 回车 toString() 方法 , String() 方法  --双引号和单引号没什么区别.

      Object 类型 :  var o = new Object();

      Object类型的属性和方法 :

                constructor - 保存用于创建当前对象的函数 ( 构造函数 - Object() )

                hasOwnProperty( propertyName ) - 用于检查给顶的属性在当前对象实例中( 而不是在实例的原型中) 是否存在.
                isPropertyOf(object) - 用于检查传入对象是否是另一个对象的原型

                propertyIsEnumerable( propertyName) - 用于检查给定的属性是否能够使用 for-in 语句.

                toString() - 返回对象字符串表示

                valueOf() - 返回对象的字符串,数值或布尔值表示, 通常与 toString()方法返回值相同.

3.操作符

      位操作 : ~非 , &与 , |或 , ^异或    << 左移 >> 右移    >>>无符号右移

      布尔操作 : ! 求反 , && 逻辑与, || 逻辑或

      关系操作 : < <= > >=    var result1 = 5 > 3 ( result1 返回 true )

      == , != , === ,!== ( 最后是不全等, 如果两个不同类型的值进行比较, 则 !== 会不进行类型转换而直接比较 ) var result = ( "55" != 55 ) 这个会返回 false , 因为 转换类型后是相等的,但是如果是 var result = ( "55" !== 55) 会返回true , 因为没有发生类型转换 . 推荐使用 === , !== 全等和不全等操作符 .

      条件操作 : var result = ( max1 > max2 ) ? number1 : number 2 ;

4.语句( 特殊 )

      特殊 for 语句 :for( propertity in expression ) statement

      label标签 : start : for( var i = 0; i < 10; i++) 将来这个lable 可以在 break 和 continue中使用

      with 语句 :  不建议使用 .

5.函数

     function functionName(arg0,arg1, ...... ){

           statements

      } 不同之处在与参数传递, 解析器不会判断你传递的参数是否正确,数量或数据类型都无所谓, 因为在函数内部有个arguments数组用来接收参数,并且可以在函数内部直接使用,例如直接使用arguments.length, 可以判断究竟传过来的实际参数是哪些.例如 ( 因为JavaScript中的数组可以存放不同类型的多个数据 )

      function doAdd(){

            if ( arguments.length == 1 ) {

                  alert( arguments[0] + 10 ) ;

            } else if ( arguments.length == 2 ) {

                alert( arguments[0] + arguments[1] );

             }

      }

      doAdd( 10 ) ;    // 结果 20

      doAdd ( 30,20 ) // 结果 50

      如上的不同之处 , 必定函数没有重载 .


6.JavaScript 获取元素

1). 通过元素ID    document.getElementById( id )

2). 通过标签名字 document.getElementByName( "li" )  此处的名字是指元素的名字, 而同一种元素有可能不只有一个,  比如<p> 段落这个元素,可能就有很多,此时是全部返回.

3). 通过类名字    document.getElementByClassName( class ) //新的方法, HTML5中可以使用, 返回的也是数组,

7. 语句

特殊的 label : 语句 ( 尽量不要使用 ) 例如 :

outcome :

for(var i=0; i<10;i++)

  for(var j=0; j<10; j++)

     if (j==5 & i==5)

        continue outcome ;

特殊的 with 语句 : 不建议使用

8. 基本类型和引用类型的赋值

基本类型 :

var a = 5 ;

var b = a ;

此时, 会在栈中开辟一块新的内存地址, 用来保存变量 b 的内容, 此时的 a 和 b 是完全独立的内容.

引用类型 :

var obj1 = new Object();

var obj2 = new Obj1;

obj1.name = "Nicholas"

alert( obj2.name) ;     // 此时输出的结果也是 Nicholas

因为 : 新的引用类型只是在栈中重新分类了个地址,保存了对象的指针, 即 obj1 这个指针变量( 所谓的引用类型)和 obj2这个指针变量(所谓的引用类型) 都指向了内存中的同一个堆地址. 所以 obj1.name 和 obj2.name 是一样的内容.

 传递参数时, 跟 c 一样, 基本变量传递值, 引用类型也传递"值" , 但是这个值就不一样了, 是一个指针的值.

例如 :

function setName(obj){

  obj.name = "Nicholas";

}

var person = new Object();

setName(person);

alert(person.name)    // Nicholas    (  引用 即 指针, 多想指针 )

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值