js 学习笔记

1.javaScript:与html混用的语言,编写的程序可以在浏览器中解释执行。
    区分大小写
   三种方式:第一种在直接写在html里面
           < input type="button" onclick="alert ('第一个js测试') value="第一个" />
          第二种:声明js代码块,可以在html里面任意位置声明,包括<html>标记之外,大量js则推荐body之后。
           < script type="text/javascript" >
       function testJs02(){  alert("第二个js测试");  }
     </script>
    <input type="button" onclick="testJs02();value="第二个"/>  
          第三种:新建js文件夹, outJs 文件,外部引入
         < script src="js/outJs.js" type="text/javascript" charset="utf-8" ></ script >
     function  testJs03(){  alert("外部引入");  }

2.变量:
   全局变量:声明在js代码块内部,函数外部,全部的script都能使用
   局部变量:声明在函数内部
   不能使用未声明的变量。
   如果在局部变量中,变量声明的时候没有加var,在第一次使用的时候会变为全局变量。(不推荐)
函数返回值 :  默认返回值为 undefined   
特殊类型:(Object)
      null(空对象)和undefined(只声明未初始化)
      因为undefined派生于null,所以null和undefined相等
对象类型:object,数组,函数
隐式转换:
      做加法运算时,所有类型都向number类型靠拢
      boolean类型:true=1   false=0
      遇到字符串类型就会进行字符串的拼接
显示转换:
      parseInt('str');     //显示转换成整型
      parseFloat('str');  //转成浮点型
     
会执行最后一个test02,因为js从上往下执行,最后一个test02把前面的覆盖了,最终会提示test02()未定义,报错

   console.log("aaa");   //控制台输出       typeof  显示数据的类型
3. 变量:
     var num = 5;
  数据类型:分为原生类型对象类型
  原生类型:数值型、布尔型、字符串型
number:整型,浮点型,Infinity,NaN(自身不等于自身)
  特殊类型:(Object)
null(空对象)和undefined(只声明未初始化)
因为undefined派生于null,所以null和undefined相等
  对象类型:object,数组,函数      Date  Array
var a=100; b ="abc";  c=true;    alert(a+c+b);  // 101abc     此处true代表1
运算符:
等同符:===  不会发生隐式转换,既比较数据类型也比较数值
等值:  ==    会发生隐式转换,比较数值是否相等
    NaN:与任何数字相减都等于NaN,并且自己不等于自己
                                    var  a=1;   var  c=true;    alert(a == c);//true
隐式转换:
做加法运算时,所有类型都向number类型靠拢。
boolean类型:true = 1  false = 0
遇到字符串类型就会进行字符串的拼接
显式转换:
parseInt('str');  //显式转换成整型
parseFloat('str')  //显式转换成浮点型

5.window.document.write("aaa");  //打印

6.数组:
   长度可变,元素类型可以不同,JS数组长度随时可以变,随时可以修改,可以通过修改数组长度清空数组。
    array.length获取数组长度,也可以修改数组长度。
    array.push("aaa");   //数组末尾添加aaa
    array.pop();       //删除数组最后一项
    array.unshift("aa");    //数组第一个元素位置添加元素
    array.shift();      //删除数组第一个元素
    array.join("-")    //以-形式,连接所有元素

7.函数:
   写法1.function var fun01(var a,var b){      //var一般省略     调用οnclick="fun01(3,4);"
                       return a+b;
               }
   写法2.  var fun02=new Function("a","b","var c=a+b;alert(c);return c");   //函数也是对象(几乎不用)
   写法3.  var  fun03=function( var  a, var  b){       //把函数的引用指向变量        使用fun03(3,4)
                              return a+b;
                       }
    a. 函数之间可互相调用    b.函数可以当实参传递
     
      var  fun04=new Function("a","b","c","fun03(a,b,c)");    //调用的时候 onclick ="fun04(10,20,3);"

8.常见内置方法
   Math.random();   [0,1)    Math.round(4.3)  四舍五入
    ParsetInt()     escape()对字符串进行编码(16进制)    unescape()解码     escape(m2)   unescape(m4)
                             encodeURI(m2)   对字符串进行编码(IE进行base64编码)
    eval()把字符串当成动态的js代码进行解析(可以对内部数据继续运算)   如"122+3"会得到结果为125
              针对于字符串内部中有运算符而言
      var  m5="var num=123"; eval(m5);    
   var  m5="var abc='a',b=1122" num = eval(m5);  alert(num);    显示1122

9.Date:
   var tdate=new Date();    //当前时间
   var ddate=new Date('2016-10-12");
   var  vardate=new Date(2016,10,28);
   var str="aBcDeFg";   str.substr(int,length);    str.substring(startpos,endpos); 不包括endpos

10.创建对象两种方式:
    方法一: function  testnewObj(username,userpwd){
        var mobj=new Object();
        this.name=username;
        mobj.fav=["aa",11,new Date()];
        mobj.pwd=userpwd;
        return mobj;
    }
方法二:  function  testnewObj02(username,pwd){
             var newObj02={};
             newObj02.name=username;
             newObj02.pwd=pwd;
             newObj02.m=function(){
                alert("mmmm");
             }
             return newObj02;
         }  

跟地址有关




   prototype: 存放一些公共的相同属性或者方法(每个类都有)
         function  testFactoryClass(a,b){
        this.name=a;
        this.pwd=b;
        this.prototype=['ss',11];
      }
    function testFactoryClass022(a,b){
         var cobj=new testFactoryClass(a,b);
         cobj.prototype=["菜啊擦擦啊",1122];
         var cobj22=new testFactoryClass(a,b);
          alert(cobj.prototype +"---"+ cobj22.prototype);
      }

11.JSON对象表示法: www.json.org/json-zh.html
    第一种方式:json是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。
     function testJson01(){
           var json02={ username :"aaa" ,
                        fav:["1111",22,new Date()],
                        met:function(){  alert("ssss");  }
                     } ;
                    alert(json02.fav[2]+"--"+json02.username+"--"+json02.met()); }   
   第二种方式: //数组格式json
    function testJson02(){
         var json=[{ username:"aaa",pwd:111},{username:"bbb",pwd:222},{username:"ccc",pwd:333}] ;
         alert(json[1].pwd);
    }  
   第三种方式: //json嵌套json
    function testJson03(){
        var json=[{
         {username:"aaa",pwd:333,ppee:{pname:"sss",pwww:{ pwqq:"pqs"}}}];
         alert(json[0].ppee.pwww.pwqq);
     }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值