您的位置:首页 > Web前端 > JavaScript

js 小知识点 (以前的笔记,有点乱)

2017-06-26 16:30 204 查看
在js中其实全局变量都是window的属性

比如var a=23;

alert(a)就是alert(window.a);

alert一个没有定义的变量会报错,而alert一个没有定义的属性显示undefined

直接alert(a),报错。alert(window.a)显示undefined

a=function ss(d){
alert(d);
}
// 这个写完以后,ss就不起作用了,起作用只有a,可以理解为a是ss的别名,
// 并且函数ss被销毁了。一般用在匿名函数上,意义是给函数起名。


JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。

您可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:

document.write(“Hello \

World!”);

不过,您不能像这样折行:

document.write \

(“Hello World!”);

如果重新声明 JavaScript 变量,该变量的值不会丢失:

JavaScript 只有一种数字类型,64位。数字可以带小数点,也可以不带:极大或极小的数字可以通过科学(指数)计数法来书写:

整数(不使用小数点或指数计数法)最多为 15 位。

小数的最大位数是 17:

//加法
Number.prototype.add = function(arg){
var r1,r2,m;
try{r1=this.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (this*m+arg*m)/m
}

//减法
Number.prototype.sub = function (arg){
return this.add(-arg);
}

//乘法
Number.prototype.mul = function (arg)
{
var m=0,s1=this.toString(),s2=arg.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

//除法
Number.prototype.div = function (arg){
var t1=0,t2=0,r1,r2;
try{t1=this.toString().split(".")[1].length}catch(e){}
try{t2=arg.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(this.toString().replace(".",""))
r2=Number(arg.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

// ********************************************************
alert(Number(0.09999999).add(0.00000001));//弹出: 0.1
//注意,如果是负数,一定要先使用Number转型,否则结果不正确
alert(Number(-0.09999999).sub(0.00000001));//弹出: -0.1
alert(Number(0.012345).mul(0.000001));//弹出: 1.2345e-8
alert(Number(0.000001).div(0.0001));//弹出: 0.01
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: