js的含义

即为Javascript 一种编程语言 ,脚本语言

//var obj={
	name:"范冰冰",
	age:18
}
obj.gender="male";

js的组成:

1.ECMASCript JS的语法标准以及规范!现在的最新的是ES6,不过使用的是ES4

2.DOM Document Object Model 一套用来操作页面元素的API

  • API :Application Programming Interface 应用程序接口
    • 部分轮播图可由DOM完成

3.BOM Browser Object Model 一套用来操作浏览器相关信息的API

//location  可以用来操作和获取 所有跟url地址相关的信息
//href: 后跟链接

//navigator  可以用来操作
//Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

//history 
  //history.go()
    //()中可以放-1,0,1分别含义为后退,刷新,前进		
//url 地址格式
	//  协议名称://域名         :端口号/路径      ?参数  #哈希值
	//  http:   //www.baidu.com:8080/home/index?q=1234#book
	//创建了一个匹配google浏览器的正则表达式
	var reg=/chrome\/(\d+\.\d+)/i;
	
	//用正则表达式来匹配是否可以通过验证
	alert(reg.test(ua));

js中的数据类型

简单类型与复杂类型的分类

1.基本数据类型

  • string,number,boolean,undefined,null
    • undefined 数据在声明未赋值的时候,就是undefined
    • null 数据不可能自动为null,除非手动赋值为null
//var a = 1;
//var a = null;
//int a;
//string b;

//var a = {
//   name:"杨皊".
//   age:18,
//	 money:99
//  }
//  a = null;

//var div = document.getElementsByTagName("div");

//  function getPerson(name) {
//    if (name) {
//      return {
//        name: name
//      }
//    }
//    return null;
//  }

//  var p = getPerson("AABB");
//  console.log(p);       //Object:{name:"AABB"}

//  var p1=getPerson();
//  console.log(p1);      //null

2.复杂数据类型

  • function

  • Object

    • var obj = new Object();
  • Array

    • var arr = new Array();
  • Date

    • var now = new Date();
  • RegExp

    • var reg = new RegExp();
  • Math

  • String

    • var str = new String();
  • Number

    • var num = new Number();
  • Boolean

    • var bool = new Boolean();

      var str="abc";
      //  console.log(str[0]); //a
       var str1=new String("abc");
      console.log(str);   //abc
      console.log(str1);  //string{0:"a",1:"b",2:"c" strength}:类似于对象的字符串
      

值类型和引用类型的分类

  • 1.值类型

    • 直接存储的是数据本身的这种数据,就是值类型的数据
     var a=10;
     var b= "abc";
    

  • 2.引用类型

    • 存储的是数据的地址,数据单独存储起来的这种数据就是引用类型的数据
    var obj={
        name:"周杰伦",
        age:18,
        car:{
          brand:"Mobike",
          color:"YellowGreen"
        }
      };
    
    var arr=[
        {songName:"成都",singer:{name:"赵雷",age:30}},
        {songName:"消愁",singer:{name:"毛不易",age:20}},
        {songName:"告白星球",singer:{name:"Jay",age:35}},
        {songName:"太阳最红毛主席最亲",singer:{name:"阿宝",age:35}}
      ]
    
  • 可以使用图示法进行解析地址,如下所示:

  • 分别的特征

    • 值类型复制的特征

      • 当值类型数据在赋值的时候,会将存储的数据直接复制一份交给新的变量,此时虽然两个变量值相同,但是存储空间完全独立,互不影响

        var num=123;
          var num1=num;
          num1=456;
          console.log(num);  //123
        
        function test(num){
            //var num=num1
            num++;
          }
        
          var num1=100;
          test(num1);
          console.log(num1);         //num1=100;  上述函数只是为num赋值,与下边的num1没关系
        
    • 引用类型的赋值特征

    • 当引用类型数据赋值的时候,会将存储的数据的地址复制一份交给新的变量,此时两个变量同时指向同一个对象,修改其中一个,另外一个也会受到影响!

        var obj={
          name:"王力宏",
          type:"高富帅"
        };
        var obj1=obj;
        obj1.type="白富美";
        console.log(obj.type);   //obj={name:"王力宏",type:"白富美"};
      
      function upgrade(){
        obj.money=999;
        obj={
          name: "王心凌",
          money: 100
        }
      }
      var xhy = {
        name :"金沙",
        money:1
      };
      upgrade(xhy);       //在这种情况下,先更改了xhy的money为999,之后又重新加了一个新对象
      console.log(xhy.money);  //999
      
  • 获取数据类型的方式

    • typeof 关键字
    //  var num1=123;  var num2="123";  var num3=false;
    
    //  var type1 =typeof num1;  var type2 =typeof num2;var type3 =typeof num3;
    
    //  console.log(type1);     //number
    //  console.log(type2);     //string
    //  console.log(type3);     //boolean
    //  console.log(typeof (typeof num));   //string ,是在求(number,string,boolean)字母的类型
    
    //  function test(){
    //  }
    
    //  console.log(typeof test);     //function
    
    • typeof关键字注意事项

      • 使用typeof获取复杂类型数据的类型的时候,除了function,其他的数据类型获取到的全都是object
    var obj={};
      console.log(typeof obj);      //object
    
    var arr=[];
      console.log(typeof arr);        //object
    //**console.log(arr.constructor.name);//Array
    
      var now =new Date();
    console.log(typeof now);           //object
    
    var reg = new RegExp();
     console.log(typeof reg);          //object
    
    console.log(typeof null);         //object
    
    • 各种类型数据须遵从规则

      var a=10;
      A=11;
      console.log(a);
      var $_a1=10;    //数据的命名十分大小写的,遵从驼峰命名规则
       //var __a;
      //var _a;      //此种命名方式有专有的用途
      
    • constructor.name使用方式

      console.log(arr.constructor.name);//Array
      

posted on 2017-08-25 02:00  刘娜--liuna  阅读(103)  评论(0)    收藏  举报