javaScript中數據類型,$ is not a function問題

javaScript中數據類型

學習一週js,做一個數據類型總結,遇到一個$ is not a function問題,已解決,遇到過相同的問題,看這裏。


數據類型

類型 參數
字符串 “word”,’word’;
數字 12345,1.234,2e-5;
布爾 true,false;
數組 new Array(“a”,”b”,”c”);
對象 {“age”:123,”name”:”bill”};
Null
Undefined 不含有值,運算出錯也會報這個

- js數據類型是動態類型,意思就是相同的變量可能有不同的類型。
比如:

var x;               // x 爲 undefined
var x = 6;           // x 爲數字
var x = "Bill";      // x 爲字符串

第一次寫弱類型的語言,不像c,java,一樣的強類型語言,以爲終於可以擺脫各種類型,想怎麼用就怎麼用!那就錯了。

回調函數:

//定義
var num1;
var num2;
//加法
function sum(num1,num2){
    return num1+num2;
}
//乘法
function mul(num1,num2){
    return num1*num2;
}
//傳入一個方法名和兩個數值
function cal(calname,num1,num2){
    return calname(num1,num2);
}
//測試
var result=cal(sum,1,2);
alert(result);

1、萬事大吉,正確輸出:
正常輸出
2、再來一個,僅測試方式改爲輸入參數:

//測試
var line=prompt("輸入方法名 數值1 數值2,以空格隔開");
var ops=line.split(" ");
//輸出運算方法
alert(ops[0]);
var result=cal(ops[0],Number(ops[1]),Number(ops[2]));
alert(result);

3、好像就是一個很簡單的計算,可以輸出方法名,但不能輸出結果,再看控制檯:
方法名正確

op is not defined

解決方法

//測試
var line=prompt("輸入方法名 數值1 數值2,以空格隔開");
var ops=line.split(" ");
alert(ops[0]);
var result=cal(eval(ops[0]),Number(ops[1]),Number(ops[2]));
alert(result);

輸入參數:sum 1 2
eval:
eval() 函數可計算某個字符串,並執行其中的的 JavaScript 代碼。平常用的不多,在這裏相當於把String類型轉爲function!

完整代碼

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>csdn_text01_js_01</title>
<script>
//定義
var num1;
var num2;
//加法
function sum(num1,num2){
    return num1+num2;
};
//乘法
function mul(num1,num2){
    return num1*num2;
};
//傳入一個方法名和兩個數值
function cal(calname,num1,num2){
    return calname(num1,num2);
};
//測試
var line=prompt("輸入方法名 數值1 數值2,以空格隔開");
var ops=line.split(" ");
alert(ops[0]);
var result=cal(eval(ops[0]),Number(ops[1]),Number(ops[2]));
alert(result);
</script>
</head>

<body>  
</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章