javascript(一) 基本语法

JavaScript概述

JavaScript的主要用途是用在浏览器当中, 也可以作为后台开发语言(nodejs),类似于 java, 简称 js ,它的恩日日是写在<script>标签之间的。

格式:

   <script type="text/javascript">
      //内容\
      /*内容*/
   </script>

注释

  • //注释内容
  • /*注释内容*/

基本数据类型

  • Number 数字类型(整数,小数)  如:1.0  、1  、-2
  • String 字符串类型   如:"字符串1"  、'字符串2'
  • Boolean 布尔类型   如: true、 false
  • Null  表示空值
  • Undefined  未定义 (声明了var变量,但没有赋初值时)

变量赋值

与java不同JavaScript声明变量所有的那些数据类型都是var,只要用var来声明变量就好了,也可以说它是弱类型语言。

  • 所有变量类型 都是 var  (var 可以存储数字,字符串,布尔 ...)

      如:var a=1;声明了一个变量a并给它赋值数字1

              var str = "hello, world";声明了一个变量str并给它赋值字符串 "hello, world"

调试输出

  •  可以利用浏览器提供的 `console` 对象进行调试输出

              console.log("内容"); 

基本运算

  •  没有除0异常,除零会出现正负无穷大(Infinity)
  •  如果进行了非法的数字运算,结果是 NaN (Not a Number)

              如:"aaa" - 9  结果就是 NaN
                      包括字符串转换数字失败时,结果也是NaN 例如 parseInt("aaa")

  •  js中的== 比较的是值(不同类型的会转换后比较)

              如: 1 == '1'    结果是 true
              如果既要保证值相等,也要保证类型相等 
                       1 === '1'  结果是false

  •  可以在条件判断中,使用各种类型的值

             对于数字类型 0 代表 false, 非零 代表 true
             对于字符串  ""  代表 false, 非空串 代表 true
             null , undefined 代表 false

     如:var i = 0;
             if(i) {
                  console.log("ok");
              } else {
                  console.log("not ok");
             }

      输出结果为:not ok

js中没有块作用域

for(var i = 0; i < 10; i++) {
    console.log(i);
}
//for循环中的i在java中是不能在循环之外的地方使用,而JavaScript中可以,这里将会输出10
console.log(i);
//局部的变量,在java中是不能在局部以外使用的,而JavaScript没有这一局限,因此可以输出x,值为10
if(true) {
    var x = 10;
}
console.log(x);

复杂类型

Object 对象类型

  • 定义对象

       var 对象名={属性名:属性值, 属性名:属性值 ...}

       如:var obj = {"name":"张三", "age": 18};

  • 动态添加

        对象名.新属性="内容";

        如:obj.sex = "男";

  • 修改属性

       对象名.原有属性="内容";

        如:obj.age = 20;

  • 删除属性

       delete 对象名.原有属性;

       如:delete obj.age;

Array  数组类型

  • 定义数组

        var 数组名=[值1, 值2, ... 值n];

        var 数组名=new Array();

        var 数组名=new Array(数组大小);

   如:var array = [1,2,3,4,5];

  • 向尾部添加元素

       数组名.push(元素)  结果[1,2,3,4,5,6]

  如:arr.push(6);  结果[1,2,3,4,5]

  • 从尾部删除元素

       数组名.pop() 结果[1,2,3,4]

   如:arr.pop();

  • 从中间的某个下标删除元素

      数组名.splice(下标,个数);

   如:arr.splice(0,2);  结果[3,4,5]

  • 指定位置插入元素

      数组名.splice(指定位置,0,插入的数据);

    如:arr.splice(0,0,"z"); 结果[z,1,2,3,4,5]

  • 拼接数组内的所有元素

      数组名.join("拼接符号"); 

   如:arr.join("-");  结果1-2-3-4-5

  • 排序

      数组名.sort();   //无参数的sort方法把数组内的数字当做字符串排序,因为字符串的比较是先比较第一个字符,然后再比较第二个字符

      数组名.sort(有参);

     如:array.sort( function comparator(a,b) {
            // 返回的整数 0 表示 a= b   如果返回负数 a < b  如果返回正数表示 a > b
                 if( a > b) {
                      return 1;
                 } else if (a < b ) {
                      return -1;
                 } else {
                      return 0;
                 }
              //也就是 return a - b;
            });

数组遍历

如:var array = [1,2,3,4,5];

 forEach遍历数组

  •  其中函数的参数 i 是数组内第i个元素

    array.forEach( function aaa(i) {
       console.log(i);
    } );

  • 匿名函数

    array.forEach( function (i) {
      console.log(i);
    } );

  • 箭头函数,这个有点像java中的lambda表达式,只不过Java中的是“-”而不是“=”

array.forEach( (i)=>{
    console.log(i);
} );

for循环遍历

   for(var i=0;i<arr.length;i++){

      console.log(i);

    }

Funtion 函数类型

格式:

      function 函数名(参数列表) {
          函数体
         return 返回结果
      }

如:

     function add(a, b) {
         console.log(arguments);
         return a + b;
    }

注:函数的参数是可变的, 形参和实参的个数可以不一致
       例如,调用add(4,5) ==> 9
       调用add(4,5,6) ==> 9 // 相当于第三个实参没用上
       调用add(4) ==> NaN // b 参数没有赋值,是 undefined  结果是NaN 
       获取到所有实际参数: arguments

  • 局部变量与全局互不冲突

     var a = 10; // 全局的变量 a
     function test() {
         var a = 5; // 局部的变量 a ,与全局的a互不冲突
         console.log(a);
      }

  结果:5

注:函数内定义的 var 变量才是局部变量, 函数外声明的var 都是全局变量

 Date   日期类型

  • 定义日期对象

        var date = new Date();

  • 获得年份

        date.getFullYear();

  • 获得月份

        date.getMonth();

  • 获得日期

       date.getDate();

  • 获得小时

      date.getHours();

  • 获得分钟

      date.getMinute();

  • 获得秒

     date.getTime();

正则类型

格式:

      var 正则名 = /^正则表达式$/;

      正则名.test("匹配的内容");

具体的表达式的规则都是一样的,可到我之前写正则表达式的内容中查看。

字符串

  • 连接字符串

       字符串1.concat(字符串2);

  • 搜索某个字符串位置,如果相同的字符串,则返回第一个找到的字符串的位置

       字符串名或字符串.indexOf(字符);

  • 找子串

      字符串名或字符串.substr(起始位置,个数); 

      字符串名或字符串.substr(起始位置,结束位置); 

      如:var str = "abcde";
             str.substr(2,2);  // 参数1是起始下标,参数2是长度 ,返回cd

             str.substring(2, 4) // 参数1是起始下标, 参数2是结束下标但不包括它,返回cd

  • 替换字符串

       字符串名或字符串str.replace(旧字符串, 新字符串);

    如:1、var str = "aaabbbaaa";  

            str.replace("a", "c");  // 只替换了第一个匹配的a,结果caabbbaaa

            str.replace( /a/g, "c" ); // global(全局的) 替换所有满足的,结果:cccbbbccc

           2、 var str = "aaabbbaaa";
            str.replace(/aaa/g, "c");// aaa-->c     cbbbc

           3、 var str = "<p>aaaaa</p>"; // 把标签去掉, 只留内容
            str.replace(/<p>/, "").replace(/<\/p>/,""); // 替换了两次
            或str.replace(/(<p>|<\/p>)/g, "");//全局匹配<p>或</p>标签,找到就把它变为""

           4、分组替换$1 表示第一个分组、$2 表示第二个分组...

            str.replace(/(<p>)(.+)(<\/p>)/g, "$1");//第一个括号表示$1,第二个表示$2,以此类推

总结

js的语法不多但是用的时候可能会忘记一些内容,因此要多练多看,我总是会把注释弄错,js的注释是//注释内容或/*注释内容*/,不要弄错了。

猜你喜欢

转载自blog.csdn.net/grey_mouse/article/details/86245692