三.基本概念
1.typeof 操作符 檢測資料型別
總共undefined boolean string number object function這6種型別
1.1 undefined
未宣告或未初始化 變數宣告之後預設取得了 undefined 值
1.2 null 空指標
定義的變數準備在將來用於儲存物件,那麼最好將該變數初始化為 null 而不是其他值
1.3 boolean true false
1.4 number
1.4.1 數值範圍 (number.min_value,number.max_value)即(5e-324,1.7976931348623157e+308)
超出會被轉換成 +-infinity(正負無窮) 值
1.4.2 nan,即非數值(not a number) 用於表示乙個本來要返回數值的運算元未返回數值的情況(這樣就不會丟擲錯誤了)
判斷函式為isnan()
alert(nan == nan); //false
alert(isnan(nan)); //true
alert(isnan(10)); //false( 10 是乙個數值)
alert(isnan("10")); //false(可以被轉換成數值 10)
alert(isnan("blue")); //true(不能轉換成數值)
alert(isnan(true)); //false(可以被轉換成數值 1)
1.4.3 數值轉換
有 3 個函式可以把非數值轉換為數值: number()、 parseint()和 parsefloat()。
第乙個函式,即轉型函式 number()可以用於任何資料型別,而另兩個函式則專門用於把字串轉換成數值
如果是 null 值,返回 0。
如果是 undefined,返回 nan。
var num1 = number("hello world!"); //nan
var num2 = number(""); //0
var num3 = number("000011"); //11
var num4 = number(true); //1
var num1 = parseint("1234blue"); // 1234
var num2 = parseint(""); // nan
var num3 = parseint("0xa"); // 10(十六進製制數)
var num4 = parseint(22.5); // 22
var num5 = parseint("070"); // 56(八進位制數)
var num6 = parseint("70"); // 70(十進位制數)
var num7 = parseint("0xf"); // 15(十六進製制數)
parseint()傳入第二個引數
var num1 = parseint("10", 2); //2 (按二進位制解析)
var num2 = parseint("10", 8); //8 (按八進位制解析)
var num3 = parseint("10", 10); //10 (按十進位制解析)
var num4 = parseint("10", 16); //16 (按十六進製制解析)
var num1 = parsefloat("1234blue"); //1234 (整數)
var num2 = parsefloat("0xa"); //0
var num3 = parsefloat("22.5");
var num4 = parsefloat("22.34.5");
var num5 = parsefloat("0908.5");
var num6 = parsefloat("3.125e7"); //31250000
1.5 string
tostring() 可傳參 引數為數值的基數 即轉換為多少進製 null & undefined 無此方法
string() 都有此方法
1.6 object
tolocalestring():返回物件的字串表示,該字串與執行環境的地區對應。
tostring():返回物件的字串表示。
valueof():返回物件的字串、數值或布林值表示。通常與 tostring()方法的返回值相同。
2.操作符
2.1 一元加減
2.2 位操作符 與或非
2.3 布林操作符 邏輯非(!) 邏輯與(&&) 邏輯或(||)
2.4 乘除操作符 * /
2.5 關係操作符 小於(<)、大於(>)、小於等於(<=)和大於等於(>=)
2.6 相等操作符 == != === !==
2.7 條件操作符
variable = boolean_expression ? true_value : false_value;
var max = (num1 > num2) ? num1 : num2;
2.8 賦值操作符 =
2.9逗號
3.語句
3.1 if語句
3.2 do while
3.3 while
3.4 for
3.5 for in語句 for...in 迴圈只能獲取陣列的鍵名,不能直接獲取鍵值,es6提供的for...of 可以直接獲取鍵值
3.6 label語句 多與for迴圈一起使用
3.7 break和continue語句 都是立即退出迴圈 break不再執行迴圈 但是contuine會再次執行迴圈
var num = 0;
for (var i=1; i < 10; i++)
num++;
}alert(num); //4 最後一次i=5的情況下 ,break退出了,num++ 沒有執行 ,但執行了alert()
var num = 0;
for (var i=1; i < 10; i++)
num++;
}alert(num); //8 i=5時退出for迴圈 未執行num++ 但接下來執行i=6直到i=9
3.8 switch語句
4.函式 使用 function 關鍵字來宣告,後跟一組引數以及函式體。
function functionname(arg0, arg1,...,argn)
return 後退出函式
傳參
《js高階程式設計》 第三章資料型別
資料型別具有動態性 1.undefined 宣告變數卻未對其加以初始化 賦值 2.null null值表示乙個空物件指標,而這也正是使用typeof操作符檢測null值時,會返回 object 的原因。注 undefined派生自null值,因此,alert null undefined true ...
第三章 滲透開始
滲透流程三部曲 資訊收集,漏洞分析,開始攻擊 注意 對攻擊物件收集的資訊越多,越詳細,滲透成功率就越高 不管是區域網,還是web 的滲透測試,流程大體符合滲透三部曲。在這裡主要介紹通過kali預裝好的工具,對攻擊物件的資訊收集 如 nmap對攻擊物件進行掃瞄,找出攻擊物件的資訊 kali攻擊有預裝好...
高階程式設計 python 第三章作業
3 2 問候語 繼續使用練習3 1中的列表,但不列印每個朋友的姓名,而為每人列印一條訊息。每條訊息都包含相同的問候語,但抬頭為相應朋友的姓名。源 names baker jesse jimmy print hi names 0 print hi names 1 print hi names 2 輸出...