JS的学习第一部分记录

啥都没学到,现在学起来吧,同学推荐js入门,html和css我懂一点点,慢慢学吧

在B站尚硅谷里找的课,附网址:【尚硅谷】JavaScript基础&实战丨JS入门到精通全套完整版_哔哩哔哩_bilibili

在我的理解看来,入门绝对够,教我这种菜鸡至少够了

学吧

<!DOCTYPE html> 
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>不持之以恒学JS是真的xibaer</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='main.css'>
    <script>
        //格式整理Ctrl+A  Shift+Alt+F
        //快速查找Ctrl+f
        /*
            一个警告框
        */
       alert("xibaer");
      
       //在页面中输出一个内容
       document.write("看我出来不");
      
       // 向控制台输出一个内容
      console.log("你看我在哪?");

      //使用var来声明变量
      var a;
    //   let a;             声明变量
    //   const a;

      alert(a);

      //string 字符串

      var str = "hello wold";

      console.log(str);

      //number 整数、浮点数
      var number1 = 123.456;
      console.log(number1);

      /*
      *     Number  整数、浮点数
      *     String  字符串
      *     Boolean 布尔值
      *     Undefined   当一个声明了但是未初始化的变量会默认赋值为字符串“undefined”
      *     Object  将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
      * 
      */

      /*
      * typeof 变量
      * 用来检查一个变量的类型
      */
      console.log(typeof str);
      console.log(typeof number1);
      console.log(typeof a);

      //JS 中可以表示的最大值为  Number.MAX_VALUE
      console.log(Number.MAX_VALUE);

        //在js中如果需要表示十六进制数,则需要0x(零和艾克斯)开头
     sHiLiu = 0x10;//十六
     sHiLiu2 = 0xff;
     console.log(sHiLiu);
     console.log(typeof sHiLiu);
     console.log(sHiLiu2);

     //      如果需要表示八进制数,则需要0开头
     bAjinZhi = 016;
     console.log(bAjinZhi);//bAjinZhi=八进制

    //不是所有浏览器都支持     
    //          如需要表示二进制数,则需要0b开头     
     eRjinZhi = 0b101011;
     console.log(eRjinZhi);//eRjinZhi=二进制

     //parseInt用来string转换为number
     pzHuanN = "070";//p转n
     console.log(typeof pzHuanN);
     console.log( pzHuanN);
     /*
      *转换时,有的浏览器会把070转换为十进制number类的字符输出70,但有些浏览器则会
        解析成八进制输出56.
     */
     pzHuanN = parseInt(pzHuanN);
     //可以在parseInt中传递第二个参数,来指定数字的进制
     pzHuanN = parseInt(pzHuanN,10);


     //Boolean值是判断Ture和Flase
     var zhuAnBoolean = 123;//转Boolean
     console.log(zhuAnBoolean);
     console.log(typeof zhuAnBoolean);
     //调用Boolean()函数来将zhuAnBoolean转换为布尔值
     zhuAnBoolean = Boolean(zhuAnBoolean);
     console.log(zhuAnBoolean);
     console.log(typeof zhuAnBoolean);
     //123输出为True
     //-123输出为True
     //0输出为False
     //Infinity(无穷大)输出为True
     //NaN(是not a number的缩写,表示不是一个合法的数字)输出为False
     //         数字转布尔,除了0和NaN其余都是Flase
     //         字符串转布尔,除了空串(啥都不写,像""),其余都是True
     //a = null输出为False
     //Undefined(当一个声明了但是未初始化的变量会默认赋值为字符串“undefined”)输出为False
     //         对象也会转换为True
     

     /*
     *  运算符也叫操作符
     *   通过运算符可以将一个或多个值进行运算
     * 比如 typeof 就是一个运算符,可以获得一个值的类型
     * 
     *          a = 123;
     *          typeof a;
     * 
     * 可以像 var result = typeof a; 这样来让result接受typeof的运算值
     * 在这样 console.log(result); 输出就是number和 console.log(typeof a); 输出一样
     * 
     * 算术运算符:  +  -  *  /  %
     * 
     *      一般不对原变量产生影响
     *          var a = 123;
     *          a + 1;
     *          console.log(a);
     *          输出还是123
     *      赋值才会改变
     * 当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
     *      任何值和NaN做运算,都得NaN
     *如果对两个String字符串做 + 运算,则会做拼串
     *like this   
     *      result = "你好" + "大帅哥";
     *      console.log(result);
     *  输出值为:
     *          你好大帅哥
     * 任何值和字符串做加法运算,都会先转换为字符串,再进行拼串的操作
     *      turo做运算是1,但和字符串相加,会输出turo....
     * 
     *  我们只需要为任意的数据类型 +一个""就可以把该数据转换为String
     *          (一种隐形的类型转换,由浏览器完成,也是调用的String()函数)
     *                      c = String(c);
     * 
     * 
     * console.log("c = " + c);
     * 
     * result = 100 - "1" ;
     * console.log("result = " + result);
     *     "result = 99"
     * 
     * result = 2 * "8" ;
     * console.log("result = " + result);
     *     "result = 16"
     * 
     *          任何值做 - * / 运算时,都会自动转换为Number
     * 
     * result = 9 % 3;
     * console.log("result = " + result);
     *     "result = 0"
     * 
     */


        //+号不会改变数据类型
        //-号会改变数据类型后输出
            

               strZhuanNum = "18";
               strZhuanNum = - strZhuanNum;
             console.log("strZhuanNum = " + strZhuanNum);  // "result = -18"
             console.log(typeof strZhuanNum);         //"number"              

     //可以对其他类型的数据使用+,来将其转化为Number,原理和Number()一样
     
     //自增
     var ziZeng = "自增";
     var ziZeng = 1;
     //1的基础上自增
     ziZeng++;
     //2的基础上自增
     ziZeng++;
     console.log("ziZeng = " + ziZeng); //ziZeng为3
        //++a是新值,a++是原值
        /*
        *  var d = 20;
        *   result = d++ + ++d + d;
        * d++ 20  ++d 22  d 22
        * result = 64
        */
        //a--是原值
        //--a是新值

     //计算题 ziZengJiSuan = 自增计算
     var ziZengJiSuan1 = 10;
     var ziZengJiSuan2 = 20;

     var ziZengJiSuan = ziZengJiSuan1++; 
     // ziZengJiSuan1为11,ziZengJiSuan1++为10,ziZengJiSuan为10
     console.log('ziZengJiSuan = ' + ziZengJiSuan);//10
     console.log('ziZengJiSuan1 = ' + ziZengJiSuan1);//11

     ziZengJiSuan = ++ziZengJiSuan1;
     //ziZengJiSuan为12,ziZengJiSuan1为12
     console.log('ziZengJiSuan = ' + ziZengJiSuan);//12
     console.log('ziZengJiSuan1 = ' + ziZengJiSuan1);//12

     ziZengJiSuan = ziZengJiSuan2--;
     //ziZengJiSuan=20,ziZengJiSuan2=19
     console.log('ziZengJiSuan = ' + ziZengJiSuan);//20
     console.log('ziZengJiSuan2 = ' + ziZengJiSuan2);//19

     ziZengJiSuan = --ziZengJiSuan2;
     //ziZengJiSuan = 18,ziZengJiSuan2 = 18
     console.log('ziZengJiSuan = ' + ziZengJiSuan);//18
     console.log('ziZengJiSuan2 = ' + ziZengJiSuan2);//18

     /*         逻辑运算符
     *  js为我们提供了三种逻辑运算符
     *  !   非
     *      -- ! 可以用来对一个值进行非运算
     *      -- 所谓非运算就是值对一个布尔值(boolean)进行取反操作
     *          true变false,false变true
     *      -- 对一个值进行两次取反,则结果不会有变化
     *      -- 如果对非布尔值进行运算,则会将其转换为布尔值,在进行运算
     *          所以可以利用该特点,将其他的数据类型转换为布尔值,取两次反,就可以得到原值(隐式类型转换),原理个Boolean()一样

     * &&   与
     *      -- && 可以对符号两侧的值进行与运算并返回结果
     *  运算规则
     *      --两个值中只要有一个值为false,就返回false,只有两个值都为true时,才会返回true(爱情!!)
     *      --JS中的“与”属于短路的与,如果第一个值为false,则不会看第二个值
     * 是个找false的
     * 
     * 
     * ||   或
     *      -- || 可以对符号两侧的值进行或运算
     *      -- 两个值只要有一个true就返回true
     *      -- JS中的“或”属于短路的或,如果第一个值为true,则不会检查第二个值
     *
     * 
     */
     
     // ! 非运算
     var luoJiYunSuanFu = true;//逻辑运算符
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);
     //对luoJiYunSuanFu进行非运算
     luoJiYunSuanFu = !luoJiYunSuanFu;
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//false

     // && 与运算
     var luoJiYunSuanFu = true && false;//逻辑运算符
     //对luoJiYunSuanFu进行与运算
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//false
     //只要有一个false就返回false
     //第一个值为true会检查第二个值
     true && alert("第一个值为true,所以我出来了!!");
     false && alert("第一个值为false,所以我出不来了!!");
     
     //  || 或运算
     //只要有一个就返回true
     luoJiYunSuanFu = false || false;
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//false
     luoJiYunSuanFu = true || false;
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//true
     luoJiYunSuanFu = false || true;
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//true
     luoJiYunSuanFu = true || true;
     console.log("luoJiYunSuanFu = "+luoJiYunSuanFu);//true

     //只要有一个true就返回true,不检查第二个值
     //第一个值为false会检查第二个值
     false || alert("第一个值为false,所以我出来了!!");
     true || alert("第一个值为true,所以我出不来了!!");
    
     

     /*
     *  或|| 与&& 非布尔值的情况
     *  
     *  &&
     *      -- 队非布尔值进行与或运算时
     *          会先将其转换为布尔值,在进行运算
     *      --如果第一个值为ture,则返回第二个值
     *         第一个值为false,则返回第一个值(原值)
     *      
     *  ||
     *      --如果第一个值为ture则返回第一个值
     *          如果第一个值为false则返回第二个值 
     *
     * 
     */
    
     //与运算 &&
     //两值为ture返回靠后的,两值为false,则返回靠前的false
     var feiBooLean = 1 && 2;//非布尔值的运算
     console.log("feiBooLean = " +feiBooLean);
     //2
     //与运算,如果两个值都为ture,则返回后面的值!
     feiBooLean = 0 && 2;//false && true
     console.log("feiBooLean = " +feiBooLean);
     //0
     //如果有false则返回false
     feiBooLean = NaN && 2;//false && false
     console.log("feiBooLean = " +feiBooLean);
     //Nan

     //或运算 ||
     var feiBooLean = 1 || 2;//非布尔值的运算
     console.log("feiBooLean = " +feiBooLean);
     // 1


     //赋值运算符
     /*
     *  =
     *      --可以将符号右侧的值赋值给符号左侧的变量
     *      var a = 123;
     * 
     * 别分开了!!!!
     * 
     *  +=    var a = 10;
     *      --  a += 5;等价于 a = a + 5;  15
     *  -=
     *      --  a -= 5;等价于 a = a - 5;  5
     *  *=
     *      --  a *= 5;等价于 a = a * 5;  50
     *  /=
     *      --  a /= 5;等价于 a = a / 5;  2
     * %=
     *      --  a %= 5;等价于 a = a % 3;  1 余数
     *  
     *  var a = 10;
     *  a = a + 5;  15
     */


     /*         关系运算符 
     *
     * 通过关系运算符可以比较两个值之间的大小关系
     *      如果关系成立,会返回true,不成立返回false
     *  
     *  >  大于号  
     *      console.log(5 > 10);  false
     *  >= 大于或等于
     *  <
     *  <=
     *      非数值的情况
     * console.log(1 > true);   false
     * console.log( 1 >= true); true 
     * 对于非数值进行比较时,会将其转换成数字,在进行比较
     * null = 0;
     * 字符串"hello" = NaN
     *      任何值和NaN做任何比较都是false!!!
     *  true = 1;
     * false = 0;
     * 
     * console.log( "11" < "5"); true ??????
     *      如果符号   两侧   的值都是字符串,不会将其转换为数字进行比较
     *      而会分别比较字符串中字符的Unicode编码
     * 举个例子
     * console.log( "a" < "b"); true 是对的a<b
     * console.log( "abc" < "b"); true 
     *          也是对的abc和b比,只比第一位
     *  比较字符编码是一位以为比,就abc和b比,就比a和b,abc的b和b中没得比了,两位一样则比较下一位
     *      可以借用这个,来对英文进行排序,中文不行,所以无字行!!!
     *   前面"11"和"5"比,先1和5比,1的编码是"00031",而5是"00035",所以5的编码数大,后面的"1"不看了就
     *      如果比较的是两个字符串型的数字,可能会得到不可预期的结果,可以加一个字符转变
     * 举个例子
     * console.log( "12312" < "5"); true
     * console.log( "12312" < +"5"); false
     *      注意:在比较两个字符串型的数字时,一定一定要转型
     *          购物车之类的项目
     */

     /*         Unicode编码
     * 在字符串中使用转义字符输入Unicode编码
     *   \u+四位编码
     * 
     * 在网页中使用unicode编码 
     * &#编码;这里编码需要的是10进制
     * /u2620
     * 网页中需要转换为
     * <h1 style="font-size :200px">&#9760</h1>
     */
     console.log("\u1c00");

     /*     相等运算符
     *  --用来比较两个值是否相等,
     *      如果相等会返回true,否则返回false
     * 
     * 使用 == 来进行相等运算
     *      --当使用 == 来比较两个值时,如果值的类型不同
     *          则会自动进行类型转换,将其转换为相同的类型
     *          然后在比较
     * 不相等   !=
     *      --不相等也会对变量进行自动的类型转换,如果转换后相等他也会返回false
     * 
     *  === 全等
     *      --用来判断两个值是否全等,和相等类似,但不做自动的类型转换
     *            两个值的类型不同,则直接返回false  
     *      console.log("123" === 123); false
     * 
     *  !==  不全等
     *      --用来判断两个值是否不全等,和不等类似,但不会做自动的类型转换
     *          如果两个值的类型不同,会返回true
     *  console.log(1 !== "1"); true
     *
     */

     console.log(1 == 1); //true
     console.log("1" == 1); //true
     console.log("1" == true); //true
     console.log(null == 0); //false
     //         undefined 衍生自 null,所以这两个值做相等判断时,会返回true
     //NaN 不和任何值相等,包括他本身
     //可以通过isNaN()函数来判断一个值是否为NaN
     var bShiBuShiNaN = NaN;//b是不是NaN
     console.log(isNaN(bShiBuShiNaN)); //true
     console.log("123" === 123); //false
     console.log(1 !== "1"); //true
    
     /*     条件运算符
     *    --也叫三元运算符
     *         语法:
     *              条件表达式 ?语句1:语句2;
     *      --执行的流程:
     *          条件运算符在执行是,首先对条件表达式进行求值,
     *              如果该值为true,则执行语句1
     *              如果该值为false,则执行语句2,并返回结果
     * 
     *      如果条件的表达式的求职结果是一个非布尔值,
     *          会将其转换为布尔值在运算
     *
     *
     */

     true?alert("语句1"):alert("语句2");
     var tiaoJianYunSuan1 = 10;         //条件运算
     var tiaoJianYunSuan2 = 20;

     tiaoJianYunSuan1 > tiaoJianYunSuan2 ? alert("tiaoJianYunSuan1大"):alert("tiaoJianYunSuan2大"); //a大

     //获取tiaoJianYunSuan中的最大值
     var max = tiaoJianYunSuan1 > tiaoJianYunSuan2 ? tiaoJianYunSuan1 : tiaoJianYunSuan2 ;
     console.log("max = " +max);
     //获取tiaoJianYunSuan三个中的大值
     var tiaoJianYunSuan3 = 50;
     max = max > tiaoJianYunSuan3 ? max : tiaoJianYunSuan3;
     console.log("max = " +max);

     //简化,不推荐,不方便阅读
     max = tiaoJianYunSuan1 > tiaoJianYunSuan2 ? (tiaoJianYunSuan1 > tiaoJianYunSuan3 ? tiaoJianYunSuan1 : tiaoJianYunSuan3) : (tiaoJianYunSuan2 > tiaoJianYunSuan3 ? tiaoJianYunSuan2 : tiaoJianYunSuan3); //3
     //max = a>b?(a>c?a:c):(b>c?b:c);
     //     先判断ab的大小,然后a大输出a,做前面的判断,b大就做后面的,最后输出的就是三个中最大的!!
     console.log("max = " +max);//3

     /*         运算符的优先级
     *  ,运算符
     *      --使用 , 可以分割多个语句,一般可以在生名多个变量时使用,并赋值。
     *      var a;
     *      var b;
     *      var c;
     * like this     var a=1,b,c;
     * 
     * 和数学中一样,在js中运算符也有优先级,
     *  比如:先乘除,后加减
     *          var result = 1+2*3;
     * 
     * 在js中有个优先表,越靠上越高,高的先算
     * 如果优先级一样,则从左往右计算
     * 不需要记忆,如果有不清楚的可以用()来改变优先级
     * 
     * var result = 1||2&&3;
     * console.log("result = " +result);  1
     * var result = (1||2)&&3;
     * console.log("result = " +result);  3
     *
     */

     /*             代码块
     *     --语句是按照自上向下的顺序一条一条执行的
     *           在js中可以用{}来对语句进行分组
     *   同一个{}中,要么都执行,要么都不执行
     *  一个{}中,成为一个代码块
     *      在代码块后,不用写 ; 了
     * 在js中{}只有分组的作用,没有其他作用
     * 代码块内部的内容在外部是完全可见的
     * 
     *      like this
     * {
     *      var a = 10;
     * }
     *  console.log("a = " +a);  10
     *
     */

     /*         流程控制语句    if
     *      --JS中的语句是从上到下一行一行执行的
     *          流程控制语句使程序根据一定的条件来选择执行
     *      --语句的分类
     *          1.条件判断语句
     *          2.条件分支语句
     *          3.循环语句
     * 
     * 条件判断语句
     *      --   可以在执行某个语句之前进行判断
     *                  if语句
     *      --语法一
     *        if(条件表达式) {
     *              语句
     *              }
     *       判断为true,则执行if后的语句,false则反之
     *      if(true) {
     *          alert("你猜我出来吗");
     *          }
     * 
     *          --语法2
     *      if(条件表达式) {
     *      语句....
     *      } else {
     *          语句...
     *      }
     * 
     *      if..else...语句
     *  if后的表达式求值判断,如果为true,if后的语句,为false,则执行else后的语句
     *      var age = 50;
     *       if(age >= 60) {
     *      alert("你该退休了!!")
     *      } else {
     *          alert("你还不该退休了!!")
     *      }
     *      alert("你还不该退休了!!")
     * 
     *          --语句3
     *              if(条件表达式) {
     *      语句....
     *      } else if(条件表达式){
     *          语句...
     *      } else if(条件表达式){
     *          语句...
     *      } else {
     *          语句...
     *      }
     *      会从上到下依次对条件表达式进行求值判断
     *          值为true,则执行当前语句,
     *          值为false,则继续向下判断,
     *          都不满足则执行最后的语句,不写不执行最后的的结果
     *          只会有一个代码块被执行,一个被执行则直接结束语句
     *        所以要注意写法,最上面的条件成立不执行下面的,可能会造成出错  
     *              
     * 
     * if(a > 10)
     *      alert("a>10");
     *      alert("你管不了我"); 这个不管if的判断结果,是都会输出的
     *          得加括号
     *  if语句后的代码块不是必须的,但开发中尽量写上
     *  
     * var a = 11;
     *  if(a > 10 && a <= 20) {
     *      alert("a>10并且a <=20");
     *      }
     * a = 25; 不执行
     * && 两边同时满足 
     * || 只要一个满足
     */


     /*             练习一        
     * 从键盘输入小明的期末成绩;
     * 当成绩是100时,‘奖励一辆BMW’
     * 当成绩为[80-99]时,‘奖励一台iPhone15s’
     * 当成绩为[60-80]时,‘奖励一本参考书’
     * 其他时,什么奖励也没有
     */

     
        //var xiaoMingGrade = 68; 不是输入
        //prompt() 可以弹出一个提示框,该提示框中会带有一个文本框,用户可以在其中输入内容,该函数需要一个字符串作为参数,该字符串将会作为提示框的提示文字!!!
        //用户的输入内容将会作为函数的返回值返回,可以定义一个变量来接受该内容 
    var xiaoMingGrade = prompt("小明的期末成绩:");//小明成绩  score得分

        if (xiaoMingGrade > 100 || xiaoMingGrade < 0 || isNaN(xiaoMingGrade)) {
            alert ("拉出去毙了~~");
        } else {
        if (xiaoMingGrade == 100) {
            console.log("奖励一辆BMW");
        } else if(xiaoMingGrade<=99 && xiaoMingGrade >=80){
            console.log("奖励一台iPhone15s");
        } else if(xiaoMingGrade<=80 && xiaoMingGrade>=60){
            console.log("奖励一本参考书");
        } else {
            console.log("爬!");
        }
        }
        /*          练习二
        * 大家都知道,男大当婚,女大当嫁,那么女方家长嫁女儿,当然要提出一定的条件:
        * 高:180cm以上;富:1000万以上;帅:500以上
        * 如果三个条件同时满足,则:“我一定要嫁给他”
        * 如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余”
        * 如果三个条件都不满足,则:“不嫁”
        */
       var height = prompt("身高:?cm");//身高
       var wealth = prompt("财富:w");//财富
       var beautiful = prompt("帅气:");//帅气
       if (height >= 180 && wealth >= 1000 && beautiful >=500) {
           console.log("我一定要嫁给他!!");
       } else if(height >= 180 || wealth >= 1000 || beautiful >=500) {
           console.log("嫁吧,比上不足,比下有余!!");
       } else {
           console.log("不嫁!!");
       }

        /*          练习三
        * 编写程序,由键盘输入三个整数分别存入,num1,num2,num3
        * 对他们进行排序,并且从小到大输出
        */
       var numBerYi = +prompt("num1:"); //number1,2,3
       var numBerEr = +prompt("num2:");//+prompt转换成number类型,前面有写,忘了去面壁
       var numBerSan = +prompt("num3:");
       if (numBerYi < numBerEr && numBerYi < numBerSan) {
           if(numBerEr < numBerSan) {
               alert(numBerYi +","+numBerEr+","+numBerSan);
           } else {
               alert(numBerYi +","+numBerSan+","+numBerEr);
           }
       } else if (numBerEr < numBerYi && numBerEr < numBerSan) {
           if(numBerYi < numBerSan) {
               alert(numBerEr +","+numBerYi+","+numBerSan);
           } else {
               alert(numBerEr +","+numBerSan+","+numBerEr);
           }
        } else if (numBerSan < numBerYi && numBerSan < numBerEr) {
           if(numBerYi < numBerEr) {
               alert(numBerSan +","+numBerYi+","+numBerEr);
           } else {
               alert(numBerSan +","+numBerEr+","+numBerYi);
           }
        }
        //该33了



     /*
     *常用DOM方法总结
                getElementById()    返回带有指定ID 的元素。
                getElementsByTagName()  返回包含带有指定标签名称的所有元素的节
                点列表(集合/节点数组)。
                getElementsByClassName()    返回包含带有指定类名的所有元素的节
                点列表。
                getElementsByName('a') 通过name属性获取一组元素节点对象
                document.querySelector('#a') 通过CSS选择器来获取一个元素节点对象
                document.querySelectorAll('span') 通过CSS选择器来获取一组元素节点对象
                appendChild()   把新的子节点添加到指定节点。
                removeChild()   删除子节点。
                replaceChild()  替换子节点。
                insertBefore()  在指定的子节点前面插入新的子节点。
                createAttribute()   创建属性节点。
     *createElement() 创建元素节点。
                createTextNode()    创建文本节点。
                getAttribute()  返回指定的属性值。
                setAttribute()  把指定属性设置或修改为指定的值。
                当前节点.paretNode   表示当前节点的父节点
                当前节点.previousSibling 表示当前节点的前一个兄弟节点
                当前节点.nextSibling 表示当前节点的后一个兄弟节点
                父节点.firstchild 可以获取第一个子节点(包括空白文本节点)
                父节点.firstElementchild 可以获取第一个子元素(不包括空白文本节点)
                父节点.childNodes 表示当前节点的所有子节点
     *
     * 
     */



    

    </script>

    <script src="JSout.js"></script>
</head>
<body>
   
    <!--可以将JS代码写到标签的onclick属性中-->
    <button onclick="alert('讨厌,你点我干嘛~~');">点我一下</button>

    <!--可以将JS代码写在href超链接中,这样当点击href时,也会执行JS代码-->
    <a href="javascript:alert('让你点你就点?!')">你也点我一下试试!!</a>

    <a href="javascript:;">你也点我一下试试!!</a>


</body>
</html>

第一部分就这些,慢慢来吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值