首页 > 编程语言 > 详细

前端基础-JavaScript

时间:2019-11-07 20:37:13      阅读:66      评论:0      收藏:0      [点我收藏+]

JavaScript语言基础

  声明变量
    JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
    声明变量使用 var 变量名; 的格式来进行声明

  注意:
    变量名是区分大小写的。
    推荐使用驼峰式命名规则。
    保留字(关键字)不能用做变量名。

  关键字:
    [byte,char,class,const,debugger,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile]

  JavaScript数据类型
    JavaScript拥有动态类型

    JavaScript不区分整型和浮点型,就只有一种数字类型

      转化数据类型
        parseInt 转化为数字类型
        parseFloat 转回为小数类型

var x; // 此时x是undefined
var x = 1; // 此时x是数字
var x = "Alex" // 此时x是字符串 
还有一种NaN,表示不是一个数字(Not a Number)。
parseInt("ABC") // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。

 

    字符串(String)
      var x =‘字符串‘
      拼接字符串一般使用"+"

      常用方法:
        方法             说明
        .length                返回长度
        .trim()             移除空白
        .trimLeft()           移除左边的空白
        .trimRight()           移除右边的空白
        .charAt(n)           返回第n个字符
        .concat(value, ...)         拼接
        .indexOf(substring, start)   子序列位置
        .substring(from, to)        根据索引获取子序列
        .slice(start, end)        切片
        .toLowerCase()         小写
        .toUpperCase()          大写
        .split(delimiter, limit)     分割(limit可以不传)

          slice和substring的区别:
            string.slice(start, stop)和string.substring(start, stop):

            两者的相同点:
              如果start等于end,返回空字符串
              如果stop参数省略,则取到字符串末
              如果某个参数超过string的长度,这个参数会被替换为string的长度

            substirng()的特点:
              如果 start > stop ,start和stop将被交换
              如果参数是负数或者不是数字,将会被0替换

            silce()的特点:
              如果 start > stop 不会交换两者
              如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
              如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)

 

 

    布尔值
      区别于Python,true和false都是小写。

var a = true;
var b = false;
""(空字符串)、0、null、undefined、NaN都是false。

 

    null和undefined
      null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
      undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
      null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

 

    对象(Object)
      JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。

      JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
      对象只是带有属性和方法的特殊数据类型。


      数组 # 数组根据索引取值
        数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。

var a = [123, "ABC"];
console.log(a[1]); // 输出"ABC"

 


        常用方法:
          方法           说明
          .length         数组的大小
          .push(ele)         尾部追加元素
          .pop()          获取尾部的元素并删除
          .unshift(ele)      头部插入元素
          .shift()         头部移除元素
          .slice(start, end)    切片
          .reverse()         反转
          .join(seq)         将数组元素连接成字符串
          .concat(val, ...)    连接数组
          .sort()         排序(非准确排序)
          .forEach()        将数组的每个元素传递给回调函数
          .splice()         删除元素,按照索引删除 返回删除当前元素.splice(索引,个数,**args)如果个数是0,可以在**args中增加新元素插入数组中
          .map()         返回一个数组元素调用函数处理后的值的新数组

 

          关于sort()需要注意:
            如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
            如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
            若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
            若 a 等于 b,则返回 0。
            若 a 大于 b,则返回一个大于 0 的值。

实例:
function sortNumber(a,b){
return a - b 
}
var arr1 = [11, 100, 22, 55, 33, 44]
arr1.sort(sortNumber)

 

       关于遍历(for循环)可以使用下面的方式:

var a = [10, 20, 30, 40];
for (var i=0;i<a.length;i++) {
console.log(a[i]);}

 

    类型查询
      typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

      对变量或值调用 typeof 运算符将返回下列值之一:
        undefined - 如果变量是 Undefined 类型的
        boolean - 如果变量是 Boolean 类型的
        number - 如果变量是 Number 类型的
        string - 如果变量是 String 类型的
        object - 如果变量是一种引用类型或 Null 类型的

 

 

  运算符
    算数运算符
      + - * / % ++ --
    比较运算符
      > >= < <= != == === !==
    注意:
      1 == "1" // true 弱等
      1 === "1" // false 强等
    逻辑运算符
      && || !
    赋值运算符
      = += -= *= /=


  流程控制
    if-else

示例
var
a = 10; if (a > 5){ console.log("yes"); }else { console.log("no"); }

    if-else if-else

示例
var
a = 10; if (a > 5){ console.log("a > 5"); }else if (a < 5) { console.log("a < 5"); }else { console.log("a = 5"); }

    switch(多条件判断)

示例
var day = new Date().getDay();#判断当前周几返回数字
switch (day) {#绑定开关
  case 0:#如果是0返回周天
  console.log("Sunday");
  break;
  case 1:
  console.log("Monday");
  break;
default:#都不成立执行以下
  console.log("...")
}

# switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。

 

  循环

    for循环   #如果要提前结束循环 break

示例
for (var i=0;i<10;i++) {
  console.log(i);
}

 

    while循环

示例
var i = 0;
while (i < 10) {
  console.log(i);
  i++;#i自增1
}

 

  三元运算

示例
var a = 1;
var b = 2;
var c = a > b ? a (true返回的值): b(false返回的值)

 

  补充:前端抛错 跟python中raise类似
    throw关键字
    例如:
      if(error) throw error

 

  函数 function 定义函数关键字

// 普通函数定义
function f1() {
    console.log("Hello world!");
    }

// 带参数的函数#JS函数传参数多或少都不会报错
function f2(a, b) {
    console.log(arguments);  // 内置的arguments对象
    console.log(arguments.length);
    console.log(a, b);
    }

// 带返回值的函数
function sum(a, b){
    return a + b;
    }
sum(1, 2);  // 调用函数

// 匿名函数方式
var sum = function(a, b){
     return a + b;
    }
sum(1, 2)

// 立即执行函数#只能执行一遍#外部访问不到函数内部定义的变量(用立即执行函数防止变量污染全局)
(function(a, b){
    return a + b;
    })(1, 2);

 

    函数中的arguments参数
      arguments把传入的参数都显示出来
      arguments.length 传入参数的长度

    

    注意:
      函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回

 

  函数的全局变量和局部变量
    局部变量:
      在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。

    全局变量:
      在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

    变量生存周期:
      JavaScript变量的生命期从它们被声明的时间开始。
      局部变量会在函数运行以后被删除。
      全局变量会在页面关闭后被删除。

    作用域:
      首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。
      调用函数的时候要往回找函数定义阶段;

  

    闭包

var city = "BeiJing";
function f(){
  var city = "ShangHai";
  function inner(){
    console.log(city);
    }
  return inner;
  }
var ret = f();
ret();

 

  词法分析
    JavaScript中在调用函数的那一瞬间,会先进行词法分析。

    词法分析的过程:
      当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面:

        1:函数参数,如果有,则将此参数赋值给AO,且值为undefined。如果没有,则不做任何操作。
        2:函数局部变量,如果AO上有同名的值,则不做任何操作。如果没有,则将此变量赋值给AO,并且值为undefined。
        3:函数声明,如果AO上有,则会将AO上的对象覆盖。如果没有,则不做任何操作。

        函数内部无论是使用参数还是使用局部变量都到AO上找。

 

 

  内置对象和方法
    两种创建方法
      1.直接创建
      2. new + 内置对象创建
      注意var s1 = "abc"和var s2 = new String("abc")的区别:typeof s1 --> string而 typeof s2 --> Object

  

    数据类型:
      Number 数字对象
      String 字符串对象
      Boolean 布尔值对象
    组合对象:
      Array 数组对象
      Math 数学对象
      Date 日期对象
    高级对象:
      Object 自定义对象
      Error 错误对象
      Function 函数对象
      RegExp 正则表达式对象
      Global 全局对象

 

  自定义对象#JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键。

直接创建示例:
var a = {"name": "Alex", "age": 18};#自定义对象
console.log(a.name);#一种取值
console.log(a["age"]);#另一种取值
遍历对象中的内容:
var a = {"name": "Alex", "age": 18};
for (var i in a){
console.log(i, a[i]);#i为键名 a为对象
}
对象创建示例:
var person=new Object();  // 创建一个person对象
person.name="Alex";  // person对象的name属性
person.age=18;  // person对象的age属性

 

    内置的Date对象
      创建Date对象
      var d1=new Date()

      Date对象方法
        Date() 返回当日的日期和时间。
        getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
        getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
        getMonth() 从 Date 对象返回月份 (0 ~ 11)。
        getFullYear() 从 Date 对象以四位数字返回年份。
        getYear() 请使用 getFullYear() 方法代替。
        getHours() 返回 Date 对象的小时 (0 ~ 23)。
        getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
        getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
        getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
        getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
        getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
        getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
        getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
        getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
        getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
        getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
        getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
        getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
        getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
        parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
        setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
        setMonth() 设置 Date 对象中月份 (0 ~ 11)。
        setFullYear() 设置 Date 对象中的年份(四位数字)。
        setYear() 请使用 setFullYear() 方法代替。
        setHours() 设置 Date 对象中的小时 (0 ~ 23)。
        setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
        setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
        setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
        setTime() 以毫秒设置 Date 对象。
        setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
        setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
        setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
        setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
        setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
        setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
        setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
        toSource() 返回该对象的源代码。
        toString() 把 Date 对象转换为字符串。
        toTimeString() 把 Date 对象的时间部分转换为字符串。
        toDateString() 把 Date 对象的日期部分转换为字符串。
        toGMTString() 请使用 toUTCString() 方法代替。
        toUTCString() 根据世界时,把 Date 对象转换为字符串。
        toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
        toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
        toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
        UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
        valueOf() 返回 Date 对象的原始值。

 

    ****JSON对象
      JSON字符串转化为对象
        var obj = JSON.parse(str1)
      对象转换为JSON字符串
        var str=JSON.stringify(obj1)

 

 

    Math对象
      abs(x) 返回数的绝对值。
      exp(x) 返回 e 的指数。
      floor(x) 对数进行下舍入。
      log(x) 返回数的自然对数(底为e)。
      max(x,y) 返回 x 和 y 中的最高值。
      min(x,y) 返回 x 和 y 中的最低值。
      pow(x,y) 返回 x 的 y 次幂。
      random() 返回 0 ~ 1 之间的随机数。
      round(x) 把数四舍五入为最接近的整数。
      sin(x) 返回数的正弦。
      sqrt(x) 返回数的平方根。
      tan(x) 返回角的正切。

 

    RegExp对象#正则
      坑:
        # 正则表达式中一定不要加空格;
        # 如果text 待匹配字符不传值 默认传字符形式的 undefined 来判断;
        # 当正则表达式使用了全局模式(g),并且还让他检测一个字符串,此时会引出lastIndex,lastIndex会记住上一次匹配成功的位置,并把下一次要开始校验的位置记住;

      创建对象
        方法1:
          var re=new RegExp("正则表达式")
          re.text(待匹配字符)#判断待匹配字符是否符合正则 返回布尔值
        方法2:
          /正则表达式/.texe(待匹配字符)


        // 关于匹配模式:g和i的简单示例
          var s1 = "name:Alex age:18";

          s1.replace(/a/, "哈哈哈"); // "n哈哈哈me:Alex age:18"
          s1.replace(/a/g, "哈哈哈"); // "n哈哈哈me:Alex 哈哈哈ge:18" 全局匹配
          s1.replace(/a/gi, "哈哈哈"); // "n哈哈哈me:哈哈哈lex 哈哈哈ge:18" 全局匹配+不区分大小写


        // String对象与正则结合的4个方法
          var s2 = "hello world";

          s2.match(/o/g); // ["o", "o"] 查找字符串中 符合正则 的内容
          s2.search(/h/g); // 0 查找字符串中符合正则表达式的内容位置
          s2.split(/o/g); // ["hell", " w", "rld"] 按照正则表达式对字符串进行切割
          s2.replace(/o/g, "s"); // "hells wsrld" 对字符串按照正则进行替换

 

BOM和DOM

  BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。

  DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。

 

  BOM:

    Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。

    window对象
      所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
      全局变量是 window 对象的属性。全局函数是 window 对象的方法。

    

    一些常用的Window方法:
      window.innerHeight - 浏览器窗口的内部高度

      window.innerWidth - 浏览器窗口的内部宽度

      window.open() - 打开新窗口

      window.open(URL,name,features,replace)

      window.close() - 关闭当前窗口

      window.opener - 父窗口 可以直接.父窗定义好的函数 父窗口执行

        参数         描述
        URL         一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。

        name         一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。

        features       一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。

        replace        一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:true - URL 替换浏览历史中的当前条目。false - URL 在浏览历史中创建新的条目。

         demo:   window.open (‘URL‘, ‘newwindow‘, ‘height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no‘) 

          demo参数解释:
            <SCRIPT LANGUAGE="javascript"> js脚本开始;
            window.open 弹出新窗口的命令;
            URL:URL;
            ‘newwindow‘ 弹出窗口的名字(不是文件名),非必须,可用空‘‘代替;
            height=100 窗口高度;
            width=400 窗口宽度;
            top=0 窗口距离屏幕上方的象素值;
            left=0 窗口距离屏幕左侧的象素值;
            toolbar=no 是否显示工具栏,yes为显示;
            menubar,scrollbars 表示菜单栏和滚动栏。
            resizable=no 是否允许改变窗口大小,yes为允许;
            location=no 是否显示地址栏,yes为允许;
            status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
            </SCRIPT> js脚本结束

 

    window的子对象 # navigator对象(了解即可)

       浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息。
        navigator.appName    // Web浏览器全称
        navigator.appVersion   // Web浏览器厂商和版本的详细字符串
        navigator.userAgent    // 客户端绝大部分信息
        navigator.platform    // 浏览器运行所在的操作系统

 

    screen对象(了解即可)屏幕对象,不常用。

      一些属性:
        screen.availWidth - 可用的屏幕宽度
        screen.availHeight - 可用的屏幕高度

    

    history对象(了解即可)
      window.history 对象包含浏览器的历史。

      浏览历史对象,包含了用户对当前页面的浏览历史,但我们无法查看具体的地址,可以简单的用来前进或后退一个页面。
        history.forward() // 前进一页
        history.back() // 后退一页

 

 

    local对象
      window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

      常用属性和方法:
        location.href 获取URL
        location.href="URL" // 跳转到指定页面
        location.reload() 重新加载页面

    

    弹出框
      警告框

        警告框经常用于确保用户可以得到某些信息。
        当警告框出现后,用户需要点击确定按钮才能继续进行操作。 alert("你看到了吗?");

 

      确认框

        确认框用于使用户可以验证或者接受某些信息。
        当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
        如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。confirm("你确定吗?")

  

      提示框

        提示框经常用于提示用户在进入页面前输入某个值。
        当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
        如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。 prompt("请在下方输入","你的答案")

 

    计时相关
      通过使用 JavaScript,我们可以在一定时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
      setTimeout()
      语法:
        var t=setTimeout("JS语句",毫秒)
        setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
        setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert(‘5 seconds!‘)",或者对函数的调用,诸如 alertMsg()"。第二个参数指示从当前起多少毫秒后执行第一个参数(1000 毫秒等于一秒)。
      clearTimeout() # 清除计时任务
      语法:
        clearTimeout(setTimeout_variable) # 例如上例的t

      setInterval() # 每隔多长时间做某事
      语法:
        setInterval("JS语句",时间间隔)
      返回值
        一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。
        setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
        setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

      clearInterval() # 清除每隔多长时间做某事
      语法:
        clearInterval(setinterval返回的ID值)
        clearInterval() 方法可取消由 setInterval() 设置的 timeout。
        clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

 

 

  DOM
    DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。
    当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
    HTML DOM 模型被构造为对象的树。

    DOM标准规定HTML文档中的每个成分都是一个节点(node):
    文档节点(document对象):代表整个文档
    元素节点(element 对象):代表一个元素(标签)
    属性节点(attribute对象):代表一个属性,元素(标签)才有属性
    注释是注释节点(comment对象) 

    JavaScript 可以通过DOM创建动态的 HTML:
    JavaScript 能够改变页面中的所有 HTML 元素
    JavaScript 能够改变页面中的所有 HTML 属性
    JavaScript 能够改变页面中的所有 CSS 样式
    JavaScript 能够对页面中的所有事件做出反应
    注意:
      涉及到DOM操作的JS代码应该放在文档的哪个位置。

 

    查找标签
      直接查找
        document.getElementById 根据ID获取一个标签
        document.getElementsByClassName 根据class属性获取
        document.getElementsByTagName 根据标签名获取标签合集

      补充:
        document.queryselector("选择器") # 返回文档中匹配指定 CSS 选择器的一个元素。

      间接查找
        parentElement 父节点标签元素
        children 所有子标签
        firstElementChild 第一个子标签元素
        lastElementChild 最后一个子标签元素
        nextElementSibling 下一个兄弟标签元素
        previousElementSibling 上一个兄弟标签元素

 

 

    节点操作
      创建节点
        document.createElement(标签名)

      添加节点
        追加一个子节点(作为最后的子节点)
        somenode.appendChild(newnode);

        把增加的节点放到某个节点的前边。
        somenode.insertBefore(newnode,某个节点);

      删除节点
        获得要删除的元素,通过父元素调用该方法删除。
        somenode.removeChild(要删除的节点)

      替换节点
        somenode.replaceChild(newnode, 某个节点);

      属性节点
        获取文本节点的值:
        var divEle = document.getElementById("d1")
        divEle.innerText # 只获得文本
        divEle.innerHTML # 获取标签

      设置文本节点的值:
        var divEle = document.getElementById("d1")
        divEle.innerText=‘值‘#设置文本
        divEle.innerHTML=‘值‘#设置标签

      属性操作# attribute操作
        var divEle = document.getElementById("d1");
        divEle.setAttribute("age","18") # 设置自定义属性也可以设置自带属性
        divEle.getAttribute("age") # 获取自定义属性也可以获取自带属性
        divEle.removeAttribute("age") # 删除自定义属性也可以删除自带属性

      // 自带的属性还可以直接.属性名来获取和设置
        imgEle.src
        imgEle.src="..."

      获取值操作
        elementNode.value
        适用于以下标签:
        .input
        .select
        .textarea
        例如
          var iEle = document.getElementById("i1");
          console.log(iEle.value);

      class的操作
        className 获取所有样式类名(字符串)
        # className = "" # 设置类属性

        classList.remove(cls) 删除指定类
        classList.add(cls) 添加类
        classList.contains(cls) 存在返回true,否则返回false
        classList.toggle(cls) 存在就删除,否则添加

 

      指定CSS操作
        JS操作CSS属性的规律:
          1.对于没有中横线的CSS属性一般直接使用style.属性名即可。如:

            obj.style.margin=
            obj.style.width=
            obj.style.left=
            obj.style.position=

          2.对含有中横线的CSS属性,将中横线后面的第一个字母换成大写即可。如:

            obj.style.marginTop=
            obj.style.borderLeftWidth=
            obj.style.zIndex=
            obj.style.fontFamily=

      事件
        常用事件
          onclick 当用户点击某个对象时调用的事件句柄。
          ondblclick 当用户双击某个对象时调用的事件句柄。

          onfocus 元素获得焦点。 // 练习:输入框
          onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
          onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动)

          onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
          onkeypress 某个键盘按键被按下并松开。
          onkeyup 某个键盘按键被松开。
          onload 一张页面或一幅图像完成加载。 # window.onload=functon(){} 页面加载完成后执行

          onmousedown 鼠标按钮被按下。
          onmousemove 鼠标被移动。
          onmouseout 鼠标从某元素移开。
          onmouseover 鼠标移到某元素之上。

          onselect 在文本框中的文本被选中时发生。
          onsubmit 确认按钮被点击,使用的对象是form。


      绑定方法  #this 代表的是出发的当前标签

        1.直接在html文件里面绑定 事件=function(){内容}

例如:
<div id="d1" onclick="changeColor(this);">点我</div>
<script>
function changeColor(ths) {
ths.style.backgroundColor="green";
}
</script>
注意:
this是实参,表示触发事件的当前元素。
函数定义过程中的ths为形参。

 


        2.写在JS文件中,通过JS代码绑定#可用循环批量处理

例如:
<div id="d2">点我</div>
<script>
var divEle2 = document.getElementById("d2");
divEle2.onclick=function () {
this.innerText="呵呵";
}
</script>

 

前端基础-JavaScript

原文:https://www.cnblogs.com/binHome/p/11813884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!