• Javascript基本语法


    JavaScript5.0


    JS的引入方式

    • 内接式

      <script type="text/javascript">
      	...
      </script>
      
    • 外接式

      <!--相当于引入了某个模块-->
      <script type="text/javascript" src = './index.js'></script>
      

    变量

    • 变量的声明

      var a = 100;
      
    • 变量的命名规范
      变量名有命名规范:只能由英语字母、数字、下划线、美元符号$构成,且不能以数字开头,并且不能是JavaScript保留字。

      保留字:
      bstract、boolean、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
      
    • 基本数据类型

      • 数值类型:number

        var a = 100;            //定义了一个变量a,并且赋值100
         console.log(typeof a);  //输出a变量的类型 使用typeof函数 检测变量a的数据类型
        
        //特殊情况
        var b = 5/0;
        console.log(b); //Infinity 无限大
        console.log(typeof b); //number 类型
        
      • 字符串类型:string

        var a = "abcde";
        var b = "哈哈哈哈哈";
        var c = "123123";
        var d =  "";     //空字符串
        

        键盘上的+可能是连字符,也可能是数字的加号

        console.log("我" + "爱" + "你");   //连字符,把三个独立的汉字,连接在一起了
        console.log("我+爱+你");           //原样输出
        console.log(1+2+3);             //输出6
        
      • 布尔类型:boolean

        var isShow = false;
        console.log(typeof b1);
        
      • 空对象:null

        var c1 = null;//空对象. object
        console.log(typeof c1);
        
      • 未定义:undefined

        var d1;
        //表示变量未定义
        console.log(typeof d1);
        
    • 复杂数据类型

      • 数组Array

        var colors = ['red','green','yellow'];
        
          var colors = new Array();
          //通过下标进行赋值
          colors[0] = 'red';
          colors[1] = 'green';
          colors[2] = 'yellow';
          console.log(colors);
        

        数组的常用方法
        img

        • concat() 数组的合并

          var north = ['北京','山东','天津'];
          var south = ['东莞','深圳','上海'];
          
          var newCity = north.concat(south);
          console.log(newCity)
          
        • join() 将数组中元素使用指定字符串连接起来

          var score = [98,78,76,100,0];
          var str = score.join('|');
          console.log(str);//"98|78|76|100|0"
          
        • slice(start,end) 返回数组的一段记录,顾头不顾尾

          var arr = ['张三','李四','王文','赵六'];
          var newArr  = arr.slice(1,3);
          console.log(newArr);//["李四", "王文"]
          
        • pop() 移除数组的最后一个元素

          var arr = ['张三','李四','王文','赵六'];
          arr.pop();
          console.log(arr);//["张三", "李四","王文"]
          
        • push() 向数组最后添加一个元素

          var arr = ['张三','李四','王文','赵六'];
          arr.push('q1ang');
          console.log(arr);//["张三", "李四","王文","赵六","q1ang"]
          
        • reverse() 翻转数组

          var names = ['张三','李四','王文','赵六'];
          //反转数组
          names.reverse();
          console.log(names);
          
        • sort() 对数组排序

          var names = ['b','c','a','e'];
          names.sort();
          console.log(names);// ["a", "b", "c", "e"]
          
        • 判断是否为数组:isArray()

          布尔类型值 = Array.isArray(被检测的值) ;
          
      • 字符串 string
        img

        • chartAt() 返回指定索引的位置的字符
        var str = 'q1ang';
        var charset = str.charAt(1);
        console.log(charset);//1
        
        • concat() 返回字符串值,表示两个或多个字符串的拼接
        var str1 = 'q1';
        var str2  = 'ang';
        console.log(str1.concat(str2,str2));//q1ang
        
        • replace(a,b) 将字符串a替换成字符串b
        var a = '1234567755';
        var newStr = a.replace("4567","****");
        console.log(newStr);//123****755
        
        • indexof() 查找字符的下标,如果找到返回字符串的下标,找不到则返回-1 。跟seach()方法用法一样
        var str = 'q1ang';
        console.log(str.indexOf('q'));//0
        console.log(str.indexOf('z'));//-1
        
        • slice(start,end) 左闭右开 分割字符串
        var str = 'q1ang';
        console.log(str.slice(1,2));//1
        
        • split('a',1) 以字符串a分割字符串,并返回新的数组。如果第二个参数没写,表示返回整个数组,如果定义了个数,则返回数组的最大长度
        var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
        console.log(str.split('a'));//["我的天呢,", "是嘛,你在说什么呢?", "哈哈哈"]
        
        • substr(statr,end) 左闭右开
        var  str =  '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
        console.log(str.substr(0,4));//我的天呢
        
        • toLowerCase()转小写
        var str = 'Q1ANG';
        console.log(str.toLowerCase());//q1ang
        
        • toUpperCase()转大写
        var str = 'q1ang';
        console.log(str.toUpperCase());//Q1ANG
        

        特别:

        //1.将number类型转换成字符串类型
        var num = 132.32522;
        var numStr = num.toString()
        console.log(typeof numStr)
        //四舍五入
        var newNum = num.toFixed(2)
        console.log(newNum)
        
    • 运算符

      • 赋值运算符以
        var x = 12,y=5来演示示例

        img

      • 算术运算符
        var a = 5,b=2;

        img

      • 比较运算符
        var x = 5;

        img

    • 数据类型转换

      • 将number类型转换成string类型
        隐式转换

        var n1 = 123;
        var n2 = '123';
        var n3 = n1+n2;
        // 隐式转换
        console.log(typeof n3);
        
        强制转换
        // 强制类型转换String(),toString()
        var str1 = String(n1);
        console.log(typeof str1);
        
        var num = 234;
        console.log(num.toString())
        
      • 将string类型转换成number类型

        var  stringNum = '789.123wadjhkd';
        var num2 =  Number(stringNum);
        console.log(num2); //NaN  Not a Number 但是一个number类型
        
        // parseInt()可以解析一个字符串 并且返回一个整数
        console.log(parseInt(stringNum)); //789
        console.log(parseFloat(stringNum)); //789.123
        
      • 任何的数据类型都可以转换为boolean类型

        var b1 = '123'; //true
        var b2 = 0; //false
        var b3 = -123 //true
        var b4 = Infinity; //true
        var b5 = NaN; //false
        var b6; //false
        var b7 = null; //false
        //使用Boolean(变量) 来查看当前变量的真假
        

    流程控制

    • if

      var age = 20;
      if(age>18){
          //{}相当于作用域
          console.log('成年人');
      }
      alert('q1ang'); //下面的代码照样执行
      
    • if - else

      var age = 20;
      if(age>18){
          //{}相当于作用域
          console.log('成年人');
      }else{
          console.log('未成年');
      }
      alert('q1ang'); //下面的代码照样执行
      
    • if - else if - else

      var age = 18;
      if(age==18){
          //{}相当于作用域
          console.log('18岁');
      }else if(age==30){
          console.log('成年人');
      }else{
          console.log('。。。')
      }
      alert('q1ang'); //下面的代码照样执行
      
    • 逻辑与&&、逻辑或||

      //1.模拟  如果总分 >400 并且数学成绩 >89分 被清华大学录入
      //逻辑与&& 两个条件都成立的时候 才成立
      if(sum>400 && math>90){
          console.log('清华大学录入成功')
      }else{
          alert('高考失利')
      }
      //2.模拟 如果总分>400 或者你英语大于85 被复旦大学录入
      //逻辑或  只有有一个条件成立的时候 才成立
      if(sum>500 || english>85){
          alert('被复旦大学录入')
      }else{
          alert('高考又失利了')
      }
      
    • switch 语句

      var gameScore = 'better';
      
      switch(gameScore){
      
      //case表示一个条件 满足这个条件就会走进来 遇到break跳出。break终止循环。如果某个条件中不写 break,那么直到该程序遇到下一个break停止
          case 'good':
          console.log('玩的很好')
          //break表示退出
          break;
          case  'better':
          console.log('玩的老牛逼了')
          break;
          case 'best':
          console.log('恭喜你 吃鸡成功')
          break;
      
          default:
          console.log('很遗憾')
      }
      //注意:switch相当于if语句 但是玩switch的小心case穿透
      
    • while 循环

      1.初始化循环变量;2.判断循环条件;3.更新循环变量

      // 例子:打印 1~9之间的数
      var i = 1; //初始化循环变量
      
      while(i<=9){ //判断循环条件
          console.log(i);
          i = i+1; //更新循环条件
      }
      
    • do - while 循环

      //不管有没有满足while中的条件do里面的代码都会走一次
      var i = 3;//初始化循环变量
      do{
      
          console.log(i)
          i++;//更新循环条件
      
      }while (i<10) //判断循环条件
      
    • for 循环

      //输出1~10之间的数
      for(var i = 1;i<=10;i++){
           console.log(i)
       }
      

    Math内置对象

    img

    • Math.ceil() 向上取整,'天花板函数'
    var x = 1.234;
    //天花板函数  表示大于等于 x,并且与它最接近的整数是2
    var a = Math.ceil(x);
    console.log(a);//2
    
    • Math.floor 向下取整,'地板函数'
    var x = 1.234;
    // 小于等于 x,并且与它最接近的整数 1
    var b = Math.floor(x);
    console.log(b);//1
    
    • 求两个数的最大值和最小值
    //求 两个数的最大值 最小值
    console.log(Math.max(2,5));//5
    console.log(Math.min(2,5));//2
    
    • 随机数 Math.random()
    var ran = Math.random();
    console.log(ran);[0,1)
    

    如果让你取100-200之间的随机数,怎么做?

    背过公式:min - max之间的随机数: min+Math.random()*(max-min);

    函数

    • 解决大量的重复性的语句
    • 简化编程,让编程模块化
    # python 中声明函数
    def add(x,y):
        return x+y
    
    # 调用函数
    print(add(1,2))
    //js中声明函数
    function add(x,y){
        return x+y;
    }
    //js中调用函数
    console.log(add(1,2));
    

    解释如下:

    • function:是一个关键字。中文是“函数”、“功能”。

    • 函数名字:命名规定和变量的命名规定一样。只能是字母、数字、下划线、美元符号,不能以数字开头。

    • 参数:后面有一对小括号,里面是放参数用的。

    • 大括号里面,是这个函数的语句。

    • 伪数组 arguments

      • arguments只在函数中使用
          fn(2,4);
          fn(2,4,6);
          fn(2,4,6,8);
      
          function fn(a,b,c) {
              console.log(arguments);
              console.log(fn.length);         //获取形参的个数
              console.log(arguments.length);  //获取实参的个数
      
              console.log("----------------");
          }
      
      • arguments可以修改元素,但不能改变数组的长短

            fn(2,4);
            fn(2,4,6);
            fn(2,4,6,8);
        
            function fn(a,b) {
                arguments[0] = 99;  //将实参的第一个数改为99
                arguments.push(8);  //此方法不通过,因为无法增加元素
            }
        

        清空数组的几种方式:

           var array = [1,2,3,4,5,6];
            array.splice(0);      //方式1:删除数组中所有项目
            array.length = 0;     //方式2:length属性可以赋值,在其它语言中length是只读
            array = [];           //方式3:推荐
        

    对象 Object

    1. 使用Object或对象字面量创建对象

    2. 工厂模式创建对象

    3. 构造函数模式创建对象

    4. 原型模式创建对象

    Date日期对象

    //创建了一个date对象
    var myDate = new Date();
    

    img

    //返回本地时间
    console.log(myDate().toLocalString());
    

    JSON

    • JSON字符串转换JSON对象

      var jsonObject= jQuery.parseJSON(jsonstr);
      
    • JSON对象转化JSON字符串

      var jsonstr =JSON.stringify(jsonObject);
      
  • 相关阅读:
    CMD窗口正确显示UTF-8字符
    《剑指offer》 链表中倒数第k个节点
    《剑指offer》 调整数组顺序使得奇数在偶数前面
    《剑指offer》 大数递增
    《剑指offer》 数值的整数次方
    《剑指offer》 二进制中1的个数
    《剑指offer》 跳台阶
    《剑指offer》斐波那契数列
    《剑指offer》旋转数组中的最小数字
    刷《剑指offer》笔记
  • 原文地址:https://www.cnblogs.com/q1ang/p/9769276.html
Copyright © 2020-2023  润新知