JS基本(选择器,变量范例,内置对象,作用域,JSON)

JS DOM和BOM:

  ECMAScript规范 js基本语法

  • DOM 文档对象模子    DOM供应了要领操纵DOM树上的节点
  • BOM 浏览器对象模子   经由过程BOM能够 取得屏幕分辨率 掌握浏览器跳转 弹出框
  • BOM中的顶级对象就是window,DOM中的顶级对象是document。document是window的一个子对象。
    window.onload(){}
    setInterval()  clearInterval()
    setTimeout()  clearTimeout()
  • Location 对象
    包括的属性有 hash(地点栏#后的内容)、href(地点)、protocol(协定)、port(端口)、
    host(主机和端口号)、hostname(主机名字)、pathname(途径名字)、search(搜刮的内容:猎取的?后的内容)
    location.assign() //和location.href一样的操纵
    location.replace() //替代的地点,没有历史记录
    location.reload() //页面从新加载
  • History 对象
    history.forward()  //行进
    history.back()    //退却
    history.go()     //正数就是行进,负数就是退却
  • DOM对象:
    document.getElementById('div');     //返回一个ID属性为‘div’的对象
    document.getElementsByTagName('div');   //返回由一切div标签的构成的数组
    document.getElementsByClassName('div');  //返回一切含有类名为‘div’的元素数组
    document.getElementsByName('div');     //返回查询元素的 name属性为‘div’的元素数组
    document.querySelector("a[targe]");    //返回第一个含有target属性的‘a’元素
    document.querySelectorAll(".example");  //返回是多个含有类名为example的元素的数组

JS有五种基本数据范例:

  number / string / boolean / undefined / null    (可运用 typeof要领 来推断基本对象范例)

  • 援用型数据范例:
    function / object
    援用数据范例会拓荒出堆内存,它们指向的是 内存地点。
    字符串 之间用 ‘+’ 会拼接字符串,假如其他范例数据和字符串拼接,会被转换为字符串,这个中涉及到变量的隐式转换  

  

  • 范例转换:

     数字范例转换:parseInt() / parseFloat() / Number()
     *(总结:想要转整数用parseInt(),想要转小数用parseFloat(),想要转数字:Number();更严厉。)*
  • 其他范例转换:

     .toString() / String() / Boolean()
     NaN 不是一个数字,或许不是数字与数字的盘算就会获得 NaN  (isNaN()  推断一个值是否是 NaN)
     ! 示意非,  !false == true  的效果为true  
  • 操纵符:

     算数运算符:+  -  * / %
     一元运算符:++ -- 
     二元操纵符:&& || 
     三元操纵符: 前提?效果1 : 效果2
     复合运算符: +=  -=  *= /= %=
    
  • 流程掌握:

     if(){  } else if(){  }else{  }
     switch(){  case  :    ;default:  ;  } 
     while(){  }
     do{  }while() 
     for( ; ; ){  }
     (break 用来作废后续轮回,continue  用来作废本次轮回)
     (switch中的前提推断 运用的是严厉形式的全即是)
  • JS内置对象:

     实例要领:经由过程new的体式格局建立的对象(实例对象)来挪用的要领
     静态要领:直接经由过程组织函数挪用的要领
    • Array 建立体式格局有两种:
      var a =[];        //直接经由过程字面量建立
      var a = new Array()   //经由过程组织函数举行建立
    • Array对象的静态要领:
      Array.isArray(对象)  //推断这个对象是否是数组
    • Array对象的实例要领:
      .concat(数组,数组,..) //组合一个新数组
      .every(函数) //返回布尔值,函数作为参数运用,函数中有三个参数,分别是元素的值,索引值,本来的数组(没用)
             //数组中的每一个元素都相符前提,才返回true
      .filter(函数);   //数组中复合前提的元素,构成新数组
      .map(函数);    //每一个元素都实行这个函数,把实行后的效果从新放在一个新的数组中
      .forEach(函数)   //遍历数组用
      .push(值);     //把值追加到末了了,返回值是追加数据后的数组长度
      .pop();       //删除末了一个元素,返回值就是删除的这个值
      .shift();     //删除第一个元素,返回值就是删除的这个值
      .unshift();    //向第一个元素前插进去新元素,返回值是插进去后的长度
      .indexOf(元素值); //返回的是索引,没有则是-1
      .join("字符串"); //返回的是一个字符串
      .reverse();    //反转数组
      .sort();      //排序
      .slice(最先,完毕); //把截取的数组的值放在一个新的数组中,然则不包括完毕的索引对应的元素值
      .splice(最先,要删的个数,替代的值); //平常是用于删除数组中的元素,或许是替代元素,或许是插进去元素
  • Math 对象 :

    • Math对象的静态要领:
      Math.PI —π—
      Math.sqrt() —取平方根—
      Math.pow(a,b) —a的b次方—
      Math.E —天然常数—
      Math.abs() —绝对值—
      Math.ceil() —向下取整—
      Math.floor() —向上取整—
      Math.Max() —取最大值—
      Math.Min() —取最小值—
      Math.random() —取0-1之间随机值(不包括1)—
  • Date 对象

    • Date对象的静态要领:
      Date.now()          //猎取当前时刻
    • Date对象的实例要领:
      .getFullYear()       //猎取年份
      .getMonth()        //猎取月份从0最先
      .getDate()         //猎取日
      .getHours()       //猎取小时
      .getMinutes()       //猎取分钟
      .getSeconds()       //猎取秒数
      .getDay()        //猎取星期数
      .toLocaleDateString()   //”2019/1/25″
      .toLocaleTimeString()  //”下昼2:20:26″
      .valueOf()        //1548397226024
      .toString()        //”Fri Jan 25 2019 14:20:26 GMT+0800 (中国规范时刻)”
  • String 对象
    字符串能够看做是由许多字符构成的数组,字符串有不可变的特征,字符串的值之所以看起来是转变的,那是由于指向转变了,并非真的值转变了。

    • 字符串的经常使用属性:
      .length 字符串长度
      .charAt(索引)             //返回值是指定索引位置的字符串,超越索引,效果是空字符串
      .concat(字符串1,字符串2,...);     //返回的是拼接以后的新的字符串
      .indexOf(要找的字符串,最先的索引值);  //返回的是这个字符串的索引值,没找到则返回-1
      .lastIndexOf(要找的字符串);      //从后向前找,然则索引仍然是从左向右的体式格局,找不到则返回-1
      .replace("本来的字符串","新的字符串");//用来替代字符串的
      .slice(5,10);  //从索引5的位置最先提取,到索引为10的前一个完毕,没有10,并返回这个提取后的字符串
      .split("字符串",切割后留下的个数);   //切割字符串
      .substr(最先的位置,个数);       //返回的是截取后的新的字符串
      .substring(最先的索引,完毕的索引)   //返回截取后的字符串,不包括完毕的索引的字符串
      .toLowerCase();           //转小写
      .toLocaleUpperCase() 转大写
      .toUpperCase();           //转大写
      .trim();              //干掉字符串两头的空格

作用域:

  • 分为全局作用域和部分作用域,依据地点的作用域差别,变量又分为全局变量和部分变量。另外,另有块级作用域,被'{ }’包裹就能够算作一个块,实在的变量定义,运用var 定义能够被外部运用, 运用 const、let 不能够被外部运用。
  • 部分变量在函数作用域烧毁时,就会被开释,而全局变量一旦被建立,就不会被开释,除非页面封闭(然则隐式全局变量能够被烧毁,没有运用var声明的全局变量)。
  • 在一切作用域建立的时刻,js引擎会有一个处置惩罚,预诠释,它所做的事,就是提早把一切的变量声清楚明了,一切的函数声明并定义了(所以你能够在定义函数之前来挪用这个函数)。

    • 预诠释中的变量提拔,只会提拔到当前作用域的最前面,而不是其他作用域。
    • 预剖析会分段(多对的script标签中函数重名,预剖析的时刻不会争执)。

JSON对象:

一组无序属性的鸠合的键值对,属性的值能够是恣意范例,这就是对象。JSON也是一个对象,数据都是成对的,平常json花样的数据无论是键照样值都是用双引号括起来的。

JSON对象具有两个要领,parseInt() (将字符串转换为JSON对象)和 stringify() (将JSON对象转换为字符串),这两个平经常使用于 数据存储或许与背景交互。

  • 遍历对象:
for(var key in json ){
    console.log(key +'===========' + json[key]);
}
    原文作者:attacki
    原文地址: https://segmentfault.com/a/1190000018070158
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞