js随心笔记1

本人程序员一枚,用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
  }

 

 

 

你可能感兴趣的:(js,js基础)