if (that == null || "undefined" == typeof that) { return; }
var bcd; //未定義 undefined function Check_data_type(obj) { if ("undefined" == typeof obj) { return 0; } } var ts = Check_data_type(1); //未定義 undefined
var bcd; //未定義 undefined bcd = bcd || {}; //當bcd為未定義時,直接賦值為對象 bcd.abcd = bcd.abcd || {}; // 當bcd為未定義時候 報錯; var abc=null; //abc = abc || {}; //abc 為null 把abc 賦值為對象 abc = abc || ""; //為 null 把abc的 賦值為空字符串
嚴格模式下
"use strict"; //嚴格模式下 var tt = typeof win_handle_data; win_handle_data = "function" == typeof win_handle_data || new Function(); //開啟嚴格模式 這句話會報錯
嚴格模式下
"use strict"; var tt = typeof win_handle_data; //不加 var //win_handle_data = function (){}; // 報錯! win_handle_data is not defined // win_handle_data = new function (){};// 報錯! win_handle_data is not defined // win_handle_data = function test(){}; // 報錯! win_handle_data is not defined //win_handle_data = new Function();// 報錯! win_handle_data is not defined //加 var //var win_handle_data = function (){}; // ok //ƒ win_handle_data() //var win_handle_data = new function (){};// ok 是一個對象 //var win_handle_data = function test(){}; // ok //ƒ test() //var win_handle_data = new Function();// ok //ƒ anonymous( ) "function" == typeof win_handle_data && console.log(1111); //判斷 win_handle_data 是否是函數,如果是 就執行, //"function" == typeof win_handle_data && r = win_handle_data(r); //判斷 win_handle_data 是否是函數,如果是 就執行, var t = "function" == typeof win_handle_data; //不加 var //win_handle_data = false ||console.log(00); //開啟嚴格模式 這句話會報錯 在嚴格模式下不允許使用八進制文本 //win_handle_data = false || function(){}; // 報錯! win_handle_data is not defined //win_handle_data = (false || function(){}); // 加括號 報錯! win_handle_data is not defined //win_handle_data = false || new Function(); //報錯! win_handle_data is not defined //加 var var win_handle_data = false || function(){}; /// ok
//加 var var win_handle_data = false || function(data){console.log(data) }; /// ok var win_handle_data = "function" == typeof win_handle_data || new Function(); //開啟嚴格模式 win_handle_data 會被賦值為 true 和false win_handle_data("123"); //執行這個函數
//解決
var win_handle_data = false || function(data){console.log(data) }; /// ok "function" == typeof win_handle_data &&win_handle_data("123"); //判斷 win_handle_data 是否是函數,如果是 就執行,
"function" == typeof win_handle_data && (r = win_handle_data(r)); //右側賦值 要加括號
先檢測 是否是函數, "function" == typeof callback && callback();