Skip to content

Latest commit

 

History

History
216 lines (143 loc) · 2.78 KB

51_js_101.md

File metadata and controls

216 lines (143 loc) · 2.78 KB

常用JS技巧

字面量, 也就是某个常量值在程序代码中的表示方法.

例如:

1	// 10进制
0xff	// 0x开头, 16进制
061	//0打头, 8进制
"Lily"
"myName \\n 666 \n test"

字符串字面量

"Lily"

字符串长度

"Lily".length

简单算数运算

3+4

或者

2*8
+
6/7

未定义的变量

anywords222

提示如下:

Uncaught ReferenceError: anywords222 is not defined

JS 补零

var num = 3.14;
var num0 = num.toFixed(0); // "3"
var num4 = num.toFixed(4); // "3.1400"

数字取整

var num1 = 3.14;

var i1 = num1 | 0;	// 3
var i2 = 0 | num1;	// 3

Math.round(num1);	// 3
Math.round(3.5);	// 4; 四舍五入

Math.round(num1 * 10) / 10;	// 3.1; 保留1位小数
num1.toFixed(1);	// "3.1"	// 字符串

Math.floor(num1);	// 3; 向下取整, floor=地板
Math.floor(-1 * num1);	// -4;

Math.ceil(num1);	// 4; 向上取整, ceil=天花板
Math.ceil(-1 * num1);	// -3

日期转时间戳:

var d1 = new Date();	// Wed Nov 29 2017 13:53:04 GMT+0800 (中国标准时间)
var timeMillis = d1/1;	// 1511934784153
var time2=d1.getTime();	// 1511934784153

判断日期类型

typeof d1;		//"object"
typeof(d1);		//"object"
d1.constructor===Date;	// true

eval作用域:

i = 8;
(function(){
var i = 6;
eval("console.log('i='+i)");		//输出 i=6
eval("console.log('this.i='+this.i)");	//输出 this.i=8
})()

函数

函数定义:


function say(name){
  // 各种计算逻辑
  console.log("myname is :", name);
};

函数调用:

say("tiemao");		// myname is : tiemao

函数声明之后, 具有变量名不可以被删除的属性:

delete say;  //false

即使赋予其他值,该标识符依然不可删除:

say = 1;
delete say;  //false

定义普通变量:

yourname = 'csdn'

然后执行:

delete yourname;	// true
console.log(yourname);	// 报错: Uncaught ReferenceError: yourname is not defined

但是将匿名函数赋值之后,是可以删除的:

sayName = function (name){
  // 各种计算逻辑
  console.log("myname is :", name);
};

函数调用:

sayName("tiemao");		// myname is : tiemao

删除变量

delete sayName;	//false
sayName("1");	// 报错: Uncaught ReferenceError: sayName is not defined

本质上是普通的属性域:

window.msg1 = "666";	// "666"
delete window.msg1;	// true
console.dir(window.msg1); // undefined

但是用 var 声明的全局变量, 不可以删除

var msg3 = "333";
delete window.msg3;	// false
delete msg3;		// false
console.dir(window.msg3); // 333

匿名函数直接调用:

win = {id : '666'};
(function(window){console.dir(window)})(win);
(function(window, $){console.dir($)})(win, win);
相当于函数内部的形参,由外部控制