//1.变量转换Array()或者Number()来进行变量转换是常用的做法。始终使用原始数据类型来转换变量效率更高。
var myVar = "3.14159",
str = ""+ myVar,// to string
int = ~~myVar, // to integer
float = 1*myVar, // to float
bool = !!myVar, /* to boolean - any string with length
and any number except 0 are true */
array = [myVar]; // to array
(3.1415).toFixed(3); // Rounding the number, returns "3.142"
//转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,而且创建正则表达式的时候要使用/pattern/flags的形式。
//2.有很多变通方法可以让数字的字面值看起来像对象。
2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算
//3.判断属性是否存在这个问题包含两个方面,既有检查属性时候存在,还要获取属性的类型:
if(value==="" || value===undefined || value===null){
return null;
}else{
return value;
}
//给函数传递参数,当函数既有必选又有可选参数的时候,我们可能是这样做的:
function doSomething(arg0, arg1, arg2, arg3, arg4) {
...
}
doSomething('', 'foo', 5, [], false);
//而传递一个对象总是比传递一堆的参数更方便:
function doSomething() {
// Leaves the function if nothing is passed
if (!arguments[0]) {
return false;
}
var oArgs = arguments[0]
arg0 = oArgs.arg0 || "",
arg1 = oArgs.arg1 || "",
arg2 = oArgs.arg2 || 0,
arg3 = oArgs.arg3 || [],
arg4 = oArgs.arg4 || false;
}
//这只是一个把对象作为参数传递的一个很简单的例子,例如,我们还可以声明一个对象,变量名作为Key,默认值作为Value。
doSomething({
arg1 : "foo",
arg2 : 5,
arg4 : false
});
//4.为replace()方法传递一个函数,替换字符串的某个部分为其它的值,最好的方法就是给String.replace()传递一个独立的函数。
var sFlop = "Flop: [Ah] [Ks] [7c]";
var aValues = {"A":"Ace","K":"King",7:"Seven"};
var aSuits = {"h":"Hearts","s":"Spades",
"d":"Diamonds","c":"Clubs"};
sFlop = sFlop.replace(/
\w+
/gi, function(match) {
match = match.replace(match[2], aSuits[match[2]]);
match = match.replace(match[1], aValues[match[1]] +" of ");
return match;
});
// string sFlop now contains:
// "Flop: [Ace of Hearts] [King of Spades] [Seven of Clubs]"
//5.有的时候,循环中又嵌套了循环,你可能想在循环中退出,则可以用标签:
outerloop:
for (var iI=0;iI<5;iI++) {
if (somethingIsTrue()) {
// Breaks the outer loop iteration
break outerloop;
}
innerloop:
for (var iA=0;iA<5;iA++) {
if (somethingElseIsTrue()) {
// Breaks the inner loop iteration
break innerloop;
}
}
}
strChange: function (str) {
for (let k of Object.keys(str)) {
let s = '' + str[k]
if (str.length > 7) {
str[k] = s.slice(0, 6) + '...'
}
}
},
getNowFormatDate: function () {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();
let currentdate = (year + '年' + month + '月' + day + '日 ' + hour + ':' + minute + ':' + second);
return currentdate;
},
JS断点调试教程!!!
网友评论