JavaScript基础知识——被自己遗忘的

5%10=5
x="5"+"5";
x="5"+5 ;
document.write(x);(結果都為﹕55)

undefined是未初始化的变量的值﹐沒有引用值﹐屬于未定義
var anyway; anyway屬于已定義 有默認空值

一元運算符﹕delete(刪除對開發者定義的對象和方法的引用﹐不能刪除原始的ECMAScript方法)
                  void 运算符对任何值返回 undefined

没有返回值的函数真正返回的都是 undefined。

一元加法本质上对数字无任何影响。
一元加法计算字符串的方式与 parseInt() 相似
區別﹕只有一元加法才可以對八進制與十六進制形式的字符串(如﹕OxB﹑010)進行轉換

一元减法計算字符串﹐將字符串转换成近似的数字﹐再对该值求负

ECMAScript 整数有两种类型:有符号整数和无符号整数

0 表示正数,1 表示负数
正数是以真二进制形式存储的
负数也存储为二进制代码,采用二进制补码。
计算数字二进制补码﹕絕對值求反加一

在处理有符号整数时,开发者不能访问 31 位。

var iNum = -18;
alert(iNum.toString(2));
输出的是 "-10010"﹐非二进制补码﹐為了避免訪問31位

无符号整数的数值范围为 0 到 4294967295
把无符号整数转换成字符串后,只返回它们的有效位。

位运算 NOT(~)﹐位运算 AND﹐位运算 OR(|)﹐无符号右移运算(>>>)
左移运算(<<)注意:左移运算保留数字的符号位
位运算 XOR由符号(^)表示
只有一个数位存放的是 1 时,它才返回 1
所有整数字面量都默认存储为有符号整数。
只有 ECMAScript 的位运算符才能创建无符号整数。

var iNum1 = 25;  //25 等于 00000000000000000000000000011001
var iNum2 = ~iNum1; //转换为 11111111111111111111111111100110
alert(iNum2);  //输出 "-26"

<!--  //-->与老的浏览器打交道
/* */多行注释

逻辑 NOT 运算符的行为如下:
    * 如果运算数是数字 0,返回 true
    * 如果运算数是 0 以外的任何数字,返回 false
    * 如果运算数是 null,返回 true
    * 如果运算数是 NaN,返回 true
    * 如果运算数是 undefined,发生错误
!!sBlue﹐第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值求负

逻辑 AND 运算并不一定返回 Boolean 值:
    * 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
    * 如果两个运算数都是对象,返回第二个对象。
    * 如果某个运算数是 null,返回 null。
    * 如果某个运算数是 NaN,返回 NaN。

与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:
    * 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
    * 如果两个运算数都是对象,返回第一个对象。
    * 如果某个运算数是 null,返回 null。
    * 如果某个运算数是 NaN,返回 NaN。

乘法运算符(*)
    * 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。
    * 如果某个运算数是 NaN,结果为 NaN。
    * Infinity 乘以 0,结果为 NaN。
    * Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity。
    * Infinity 乘以 Infinity,结果为 Infinity。

除法运算符(/)
    * 如果某个运算数是 NaN,结果为 NaN。
    * Infinity 被 Infinity 除,结果为 NaN。
    * Infinity 被任何数字除,结果为 Infinity。
    * 0 除一个任何非无穷大的数字,结果为 NaN。
    * Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity。

取模运算符(%)
    * 如果被除数是 Infinity,或除数是 0,结果为 NaN。
    * Infinity 被 Infinity 除,结果为 NaN。
    * 如果除数是无穷大的数,结果为被除数。
    * 如果被除数为 0,结果为 0。

var bResult = "25" < "3";
两个运算数都是字符串,所以比较的是它们的字符代码,"2" 的字符代码是 50,"3" 的字符代码是 51
var bResult = "25" < 3;
字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较
任何包含 NaN 的关系运算符都要返回 false  ("a"<15﹐a調用parseInt() 返回NaN)

等号和非等号用于处理原始值(執行前轉換成數字值),全等号和非全等号用于处理对象
执行类型转换的规则如下:
    * 如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1(true != 2)
    * 如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。("5" == 5)
    * 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
    * 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。
遵守下列规则:
    * 值 null 和 undefined 相等。
    * 在检查相等性时,不能把 null 和 undefined 转换成其他值。(undefined != 0,null != 0)
    * 如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。(NaN !=NaN)
    * 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。

全等号和非全等号(不执行类型转换)

 

for-in(枚举对象的属性)
for (sProp in window) {
  alert(sProp);
}

Object 对象﹕
屬性﹕
constructor﹕对创建对象的函数的引用(指针)
Prototype﹕对于所有的对象,它默认返回 Object 对象的一个实例.
方法﹕
o.hasOwnProperty("name"); 判断对象是否有某个特定的属性
PropertyIsEnumerable;  判断给定的属性是否可以用 for...in 语句进行枚举
IsPrototypeOf(object);  判断该对象是否为另一个对象的原型
ToString(); 返回对象的原始字符串表示
ValueOf(); 返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。

Number 对象﹕
所有特殊值都是 Number 对象的静态属性。如﹕ Number.MAX_VALUE
数字对象的 Number 原始值,只需要使用 valueOf()

预定形式:
toFixed() 方法能表示具有 0 到 20 位小数的数字,超过这个范围的值会引发错误。
var oNumberObject = new Number(68);
alert(oNumberObject.toFixed(2));  //输出 "68.00"

指数形式:
toExponential(),它返回的是用科学计数法表示的数字的字符串形式。
var oNumberObject = new Number(68);
alert(oNumberObject.toExponential(1)); //输出 "6.8e+1"

toPrecision() 方法根据最有意义的形式来返回数字的预定形式或指数形式。
var oNumberObject = new Number(68);
alert(oNumberObject.toPrecision(1));  //输出 "7e+1"

String 对象的 valueOf() 方法和 toString() 方法都会返回 String 类型的原始值:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值