// Number console.log(Number(undefined)); //NaN console.log(Number(null)); //0 console.log(Number(true)); // 1 console.log(Number(false)); // 0 console.log(Number('123')); //123 console.log(Number('123a')); //NaN console.log(Number('1.23')); // 1.23 console.log(Number('+123')); //123 console.log(Number('-123')); // -123 console.log(Number('1+23')) // NaN console.log(Number('')); // 0 console.log(Number(' ')); // 0 console.log(Number('1 23'));// NaN console.log(Number('1$%23')); // NaN console.log(Number(' 123')); //123 console.log(Number('1.2.3')); // NaN console.log(Number('.23')); // 0.23 // parseInt() 会试图将字符串转为整型,若是失败 返回NaN // 若是前面是空格 数字正负号时, 当碰到 第一个不是数字时中止装换 // 若是不是数字空格直接返回NaN console.log(parseInt(undefined)); //NaN console.log(parseInt(null)); // NaN console.log(parseInt(true)); // NaN console.log(parseInt(false)); // NaN console.log(parseInt('123')); //123 console.log(parseInt('123a')); // 123 console.log(parseInt('1.23')); // 1 console.log(parseInt('+123')); //123 console.log(parseInt('-123')); // -123 console.log(parseInt('1+23')) // 1 console.log(parseInt('')); // NaN console.log(parseInt(' ')); // NaN console.log(parseInt('1 23'));// 1 console.log(parseInt('1$%23')); // 1 console.log(parseInt(' 123')); //123 console.log(parseInt('1.2.3')); // 1 console.log(parseInt('.123')) //NaN // parseFloat 与parseInt没有太大区别 除了如下几条 console.log(parseFloat('1.23')); // 1.23 console.log(parseFloat('1.2.3')); // 1.2 console.log(parseFloat('.123')) // 0.123
// undefined null boolean 转为String类型 var a = undefined + ''; console.log(typeof a); // string var b = null + ''; console.log(typeof b); // string var c = true.toString(); console.log(typeof c); var num = 20; var d = num.toString(); console.log(d); // 在浏览器控制台中字符类型是黑色的 数字是蓝色的
console.log(Boolean('')); // false console.log(Boolean(undefined)); // false console.log(Boolean(null)); // false console.log(Boolean(0)); // false console.log(Boolean(0.0)); // false console.log(Boolean(NaN)); // false console.log(Boolean(' ')); // true console.log(Boolean(1)); // true console.log(Boolean('abc')); // true
console.log(isNaN(NaN)); // true console.log(isNaN('NaN')); // true console.log(isNaN(123)); // false // isFinite: 判断既不是NaN类型 也不是InFinite类型 console.log(isFinite(123)) // true console.log(isFinite(NaN)); // false console.log(isFinite(Infinity)); // false console.log(isFinite(' ')) // true console.log(isFinite('123 ')) // true console.log(isFinite('123abc')) // false
res = a>b?true:false
(运行效率比if语句高)while浏览器
do while函数
forcode
for(var i = 0; i < array.lenght; i++) for(var i in array) // i 是下标 for(var i of array) // i 是元素
// js中循环是能够有名字的 // 语法格式 名称:循环语句 // break continue 能够跳过或终止 带有标签名的循环 label1 : for(var i = 0; i < 10; i++){ label2 : for(var j = 0; j < 10; j++){ if(j == 3){ break label1; } console.log(i + ' ' + j); } }
function info(name, age) { document.write(name); document.write(age); } info('lily', '9'); // lily 9 info('lily'); // lily undefined info('lily','9','c','d') // lily 9 // js不定长参数 function printSum(){ sum = 0; for(i in arguments) sum += arguments[i]; return sum } console.log(printSum(1,2,3))
var num = 100; /* * 在js中若是函数内部使用var声明变量时,在代码执行过程当中,系统 * 会自动把变量的声明语句(var )提到函数的最上方,这个操做叫作变量的提高 * */ function fun1 () { console.log(num); // undefined num = num +1 console.log(num); // NaN undefined + 1 = NaN var num = 200 console.log(num); // 200 } fun1();
// 定义一个函数,该函数有两个参数 // 参数的默认值 // 第一种方式: 在定义形参时,直接赋值 // 第二种方式: a = a||555; // 第三种方式: a = a ? a : 333 function func2(a, b=999){ // a = a||555; a = a ? a : 333 console.log(a); console.log(b); } func2(1,2); func2(4); func2();
// 非即时函数 var a = function(num){ console.log(num); }; a(1233); // 即时函数 (function(num){ console.log(num); })(666); // 通常来讲,匿名函数当作一次性函数使用,调用一次结束后, // 通常状况下会把匿名函数做为即时函数,可是任何函数均可以 // 即时执行 // 普通函数形式的即时函数 /*(function abc(){ alert('123') })();*/