js基础

1.

变量声明

变量在脚本中的第一次出现是在声明中。变量在第一次用到时就设置于内存中,便于后来在脚本中引用。使用变量之前先进行声明。可以使用 var 关键字来进行变量声明。如果在var 语句中没有初始化变量,变量自动取 JScript 值 undefined。尽管并不安全,但声明语句中忽略var 关键字是合法的 JScript 语法。

当要声明一个变量并进行初始化,但又不想指定任何特殊值,可以赋值为 JScript 值 null。如果声明了一个变量但没有对其赋值,该变量存在,其值为Jscript 值undefined。注意在 JScript 中 nullundefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN (不是一个数字)。对null 值和 undefined 值作比较总是相等的。

强制转换

运算结果
数值与字符串相加将数值强制转换为字符串。
布尔值与字符串相加将布尔值强制转换为字符串。
数值与布尔值相加将布尔值强制转换为数值。

要想显式地将字符串转换为整数,使用 parseInt 方法。要想显式地将字符串转换为数字,使用parseFloat 方法。请注意,比较大小时字符串自动转换为相等的数字,但加法(连接)运算时保留为字符串。

数据类型

Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。

主要(基本)数据类型是:

  • 字符串
  • 数值
  • 布尔

复合(引用)数据类型是:

  • 对象
  • 数组

特殊数据类型是:

  • Null
  • Undefined 

八进制和十六进制数可以为负,但不能有小数位,同时不能以科学计数法(指数)表示。

前缀为“0”同时包含数字“8”或“9”的数被解释为十进制数。

另外,JScript包含特殊值数字。它们是:

  • NaN (不是数)。当对不适当的数据进行数学运算时使用,例如字符串或未定义值。
  • 正无穷大。在JScript中如果一个正数太大的话使用它来表示。
  • 负无穷大。在JScript中如果一个负数太大的话使用它来表示。
  • 正0和负0。Jscript区分正0和负0。 
在 Jscript 中, null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。

如下情况将返回 undefined 值:

  • 对象属性不存在
  • 声明了变量但从未赋值。 注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为undefined。//此处双引号必不可少
    // 这个方法有效
    if (typeof(x) == "undefined")
        // 作某些操作
插播:关于console.log()的作用

主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。

相比alert他的优点是:

  1. 他能看到结构话的东西,如果是alert,淡出一个对象就是[object object],但是console能看到对象的内容。

  2. console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。

  3. console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到:

1
Console {memory: MemoryInfo, debug:  function , error:  function , info:  function , log:  function …}

它有网页的各种提示。

要检查一个对象属性是否存在,可以使用新的in 运算符: 

 in 运算符作用:
        // 就是判断 属性是否存在于对象中,如果存在,返回值为:true
        // 如果不存在,则为:false
        // 语法:属性 in 对象
        // var obj = {
        //     name1: "jack",
        //     age: 9,
        //     abc: undefined
        // };

        // 如果是name,要注意:window有name属性
        // console.log("name1" in obj); // true
        // console.log("age" in obj);// true
        // console.log("age123" in obj);//false

        // 如果是对象中存在的成员或者是原型中的成员,此时,返回的结果就是 true
        // console.log("toString" in obj);// true
        // console.log(obj.toString());//[object Object]
        // console.log("abc" in obj);//true


        // in运算符判断数组
        // 对于数组来说,索引号 就是属性
        var arr = [1];
        // console.log("1" in arr); // false
        // console.log("0" in arr); // true
        // console.log(0 in arr); // true

        // 访问数组的成员:
        // 可以使用 数组索引 也可以使用 字符串
        console.log(arr[0]);//1
          console.log(arr["0"]);//1

JScript 的运算符

JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。

计算逻辑位运算赋值杂项     
描述符号描述符号描述符号描述符号描述符号
负值-逻辑非!按位取反~赋值=删除delete
递增++小于<按位左移<<运算赋值oP=typeof 运算符typeof
递减--大于>按位右移>>  void void
乘法*小于等于<=无符号右移 >>>  instanceofinstanceof
除法/大于等于>=按位与 &  newnew
取模运算%等于==按位异或 ^  inin
加法+不等于!=按位或 |    
减法-逻辑与&&      
  逻辑或||      
  条件(三元运算符)?:      
  逗号,      
  严格相等===      
  非严格相等!==      

== (相等)与 === (严格相等)的区别在于恒等运算符在比较前强制转换不同类型的值。例如,恒等对字符串 "1" 与数值 1 的比较结果将为 true。而严格相等不强制转换不同类型的值,因此它认为字符串 "1" 与数值 1 不相同。

基本的字符串、数值和布尔值是按值比较的。如果它们的值相同,比较结果为相等。对象(包括ArrayFunctionStringNumberBooleanError、Date以及RegExp 对象)按引用比较。即使这些类型的两个变量具有相同的值,只有在它们正好为同一对象时比较结果才为 true。

作为数组的对象

在 Jscript 中,对象和数组几乎是以相同的方式处理的。对象和数组均可以被赋予任意值,实际上数组只是一种特殊的对象。数组和对象的区别在于数组有一个“奇妙的” length 属性,而对象没有。这意味着可以给数组的一个元素赋予比其他元素更大的值。例如,myArray[100] = "hello" — 然后 length 属性将自动地被更新为 101(新长度)。同样,如果修改数组的 length 属性,将删除不再是数组部分的元素。



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值