<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第四章.html</title>
</head>
<body>
<script type="text/javascript">
var undefined = "sd"; //undefined是全局變量,和null不同,他不是一個關鍵字
var o = undefined + "5";
console.log(o);//undefined5
var _sz01 = [[1, 2, 3], [4, 5, 6]];//表達式是可以嵌套的
var _sz02 = [1, , , , 5]; //其中三個元素是 undefined
console.log(_sz02[3]); //undefined
var _dx = { //對象直接量也可以嵌套
a: {x: 1, y: 2},
b: {x: 1, y: 2}
};
console.log(_dx.a.x + _dx.b.y); //3
var _o = {x: 1, y: {z: 3}};
var _a = [o, 4, [5, 6]];
console.log(_o.x);
console.log(_o.y.z);
console.log(_o["x"]);
console.log(_a[1]);
console.log(_a[2]["1"]);
console.log(_a[0].x);
var _obj = new Object();
console.log(_obj instanceof Object); //instanceof 測試對象類 true
console.log("a" in _dx); //in 測試屬性是否存在 true
console.log(~100); //-101 按位求反
//parseInt( String , 傳參的位數 ) //2-16進制 轉化成 10進制
console.log(parseInt("fa", 16));//250
console.log(1 + true); // 2 在 + 運算符中,會先把非字符串和數字的類型轉化成數字,如果數字不成立則轉化成字符串
console.log(false + true); // 1 false=0 true=1
console.log(1 + {}); // 1[object Object] {}對象不是數字 則轉換成字符串 [object Object]
console.log(1 + undefined); // NaN
console.log(1 - {}); // NaN
console.log(1 - "123asd"); // NaN
console.log(1 - "101"); // -100
//一元運算符 + - ++ -- 會將操作數轉換成數字
var _$1 = 1, _$2 = ++_$1;
var _$3 = 1, _$4 = _$3++;
console.log(_$1 + "|" + _$2); // 2
console.log(_$3 + "|" + _$4); // 2 1
//位運算符
// & 只有兩個操作數中相對應的位都是1,結果中的這一位纔是1.
console.log(parseInt("1010", 2) + "&" + parseInt("1110", 2)); //
console.log(10 & 14); // 10:1010 & 14:1110 = 1010 =10
console.log(parseInt("1010", 2)); //10
// | 如果其中一個操作數爲1,那麼結果就是1
console.log(parseInt("1010", 2) + "|" + parseInt("1110", 2)); //
console.log(10 | 14); // 10:1010 & 14:1110 = 1110 =14
console.log(parseInt("1110", 2)); //10
// ^ 都爲1時 則結果過爲1 都爲0時,則結果爲0 其中一個數爲1時候 則結果爲0
console.log(parseInt("1010", 2) + "^" + parseInt("1110", 2)); //
console.log(10 ^ 14); // 10:1010 & 14:1110 = 0100 =4
console.log(parseInt("0100", 2)); //4
// << 左移運算符
console.log(7 << 2); //28 7*(2*2) 2的2次方
console.log(7 << 3); //56 7*(2*2*2) 2的3次方
// << 右移運算符
console.log(100 >> 2); //25 100/(2*2) 2的2次方 //忽略餘數
console.log(100 >> 4); //6 100/(2*2*2*2) 2的4次方 //忽略餘數
// != == ... !== === 相等 嚴格相等
console.log("333" == 333); //true;
console.log("333" != 333); //false;
console.log("333" === 333); //false;
console.log("333" !== 333); //true;
var __ = {x: 1};
if (__ && __.x) { //true 只要是真值就可以判斷爲真
console.log("123");
}
function _(num) {
console.log(num);
}
var p = null;
if (p == null) {
_("1");
}
//寫法不同 意思一樣 同上
(p == null) && _("2");
// || OR運算符 兩個爲真值則返回真值,其中一個爲假值 則返回假值
if (true || true) {
console.log("||");
}
var max_w, pre = {max_w};
//如果max_w定義了,則直接用它,否則在pre對象中查找max_w,如果沒有定義它,則使用一個寫死的常量。
var max = max_w || pre.max_w || 500;
console.log(max);
var p = true, q = false; //對於p和q取任意值,這兩個等式都永遠成立;
console.log(!(p && q) === !p || !q); //true;
console.log(!(p || q) === !p && !q); //true;
//eval函數 可計算某個字符串,並執行其中的的 JavaScript 代碼。
var ss = eval("alert('123')"); //彈出123
console.log(ss); //undefined
var geval = eval; //獲取 全局eval函數
var x = "x", y = "y"; //定義2個全局變量
function f() {
var x = "f()"; //定義局部變量
eval("x+= 'f()';"); //直接 eval 更改局部變量的值
return x; //fh
}
function b() {
var y = "b()"; //定義局部變量
geval("y+= 'b()';"); //直接 geval 更改全局變量的值
return y; //fh
}
console.log(f(), x); // f()f() x
console.log(b(), y); // b() yb()
//條件運算符 ? :
var x = 0 - 2 * 3 - 56;
console.log(x >= 0 ? x : -x); //運用條件運算符 求 絕對值 返回的是 :左右兩邊的值
//合理運用運算符可以減少代碼量
var gree = "hello" + (null ? true : false);
//等同於
gree="hello";
if(null){
gree+=true;
}else{
gree+=false;
}
//typeof運算符
var _t=typeof null; //typeof 可以是函數也可以是運算符
console.log(_t); //object
console.log(typeof(NaN)); //number
//delete運算符 //主要用於刪除對象的屬性
//可以是函數也可以是運算符
_t={x:1,y:2};
delete _t.x; //刪除的_t的x屬性 返回true;
delete _t.z; //刪除的_t不存在z屬性 返回true;
delete _t; //返回false 不能刪除通過var聲明的變量
var s=delete(_t.g); //true;
console.log(s);//true
this.z=1; //
console.log(this.z);//1
console.log(delete z);//true; 可以執行,在嚴格模式下會拋出異常,這是用 this.z代替
console.log(this.z);//undefined; //已經刪除了
//void運算符跳過 可有可無 一般運用在 a連接中 javascript:void(0);
//逗號運算符 可以是任何操作數,由左向右計算。
var o=2,o=o*8,o=o-6;
console.log(o);//10
//for循環裏面最常用
//2015年9月20日 15:49:38 第四章完..
</script>
</body>
</html>
Javascript學習筆記【第四章】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.