本人程序员一枚,用js语言已经三年了,写过原始js,也用过jquery这类型的框架,但是还是觉得js比较模糊。最近打算好好看看js的基础,结果果然不出所料,很多让我感到好奇又很惊喜的地方,也很有意义,故记录一些小例子,共享一下。
part1:定义一个对象,写入属性
var book={
topic : "js",
fat : true
};
取值时,直接用对象.属性就可以取到值,还可以用以下方式添加属性:
book.price=123;
part2:对象定义:function Xxx(){};对象用关键字new Xxx();
function Point(x, y){ this.x = x; this.y = y; } var p1 = new Point(2,3); alert(p1.x); alert(p1.y); Point.prototype.z = function(){ return this.x*this.y; } alert(p1.z());
part3:分数精度损失
var a = 0.2-0.1;// =>0.1 var b = 0.3-0.2;// =>0.09999999999999998 alert(a==b);// =>false
part4:String/Number/Boolean对象属性都是只读的
var s = "test"; s.len = 4; var t = s.len; alert(t);// =>undefined
part5:函数作用域:js没有块级作用于,所以在函数作用域内,所有的变量都是提前声明的
e.g.1:
var s = "a"; function f(){ alert(s); // =>undefined var s = "b"; alert(s); // =>b }
e.g.2:
function s(){ var i = 1; if(true){//如果这里是false,则最后输出的j为undefined。 var j = 2; } alert(i); // =>1 alert(j); // =>2 }
part6:相等和不等运算符
当布尔值与其他类型进行比较的时候,true被转换成1,fase被转换成0,然后进行比较;
当字符串与数字进行比较的时候,会把字符串转换成数字,再做比较。
需要注意的是:undefined、null、0、-0、NaN、""都称为假值,其他值称作真值,当js期望使用一个布尔值的时候,假值会被当做false,真值为true;
alert("1" == true); // =>true alert("2" == true); // =>false var a = "2"; if(a){ alert(a); // =>弹出窗口,2 }