zoukankan      html  css  js  c++  java
  • JavaScript (一)

    注意: JavaScript中的语句要以分号(;)为结束符

     注意: JavaScript中的语句要以分号(;)为结束符

    注意: JavaScript中的语句要以分号(;)为结束符

    引入方式:

    直接用标签

    <script>
    
       // js代码
    
    </script>
    

    引入额外的js文件

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta http-equiv="content-Type" charset="UTF-8">
        <meta http-equiv="x-ua-compatible" content="IE=edge">
        <title>Title</title>
        <script>
            console.log(123);
        </script>
        <script src="myscript.js"></script>
    </head>
    <body>
    
    <div id="d1">s14</div>
    
    <script>
        console.log(456);
    </script>
    </body>
    </html>
    

    语法:

    1. JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
    2. 声明变量使用 var 变量名; 的格式来进行声明
    3. JavaScript中的语句要以分号(;)为结束符。

    数据类型: (字符串, 数字,布尔值,null,undefined,对象)

    字符串 :

    var name = "alex";
    var firstName = "Lee";  // 驼峰式命名
    console.log(firstName);
    console.log(name);
    

     字符串方法: 

    // var name = "alex";
    // var firstName = "Lee";  // 驼峰式命名;
    // console.log(firstName);
    // console.log(name);
    
    var name = '  niuli 哇咔咔'
    console.log(name);
    
    /* 查看字符串长度 */
    name.length;
    
    // 删除字符串两侧空格
    name = name.trim();
    console.log(name);
    
    // 返回第几个字符(索引字符)
    console.log(name.charAt(1));
    
    // 字符串拼接 //
    var name1 = 'GIANT';
    var name2 = 'MERIDA';
    var name3 = name.concat(name1,name2);
    console.log(name3);
    name = name3;
    
    // 查找字符串,从指定索引位置开始,若没找到,返回-1
    console.log(name.indexOf('哇咔咔',20));
    console.log(name.indexOf('哇咔咔',0));
    
    // 切片取字符串
    console.log(name);
    console.log(name.substr(0,3));
    console.log(name.substring(0,3));
    
    // 切片取字符串
    console.log(name.slice(6,10));
    
    // 分割字符串 //
    console.log(name.split(' '));
    

     ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

    // 普通字符串
    `这是普通字符串!`
    // 多行文本
    `这是多行的
    文本`
    // 字符串中嵌入变量
    var name = "q1mi", time = "today";
    `Hello ${name}, how are you ${time}?`
    

    数字:Number

    NaN,表示不是一个数字(Not a Number)

    var a = 12.34;
    var b = 20;
    var c = 123e5;  // 12300000;
    var d = 123e-5;  // 0.00123;
    

     常用方法: ( parseInt parseFloat 转换数字类型 )

    parseInt("123")  // 返回123;
    parseFloat("123.456")  // 返回123.456;
    parseInt("ABC")  // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。;
    

    布尔值 :Boolean

    var a = true;
    var b = false;
    

     ""(空字符串)、0、null、undefined、NaN都是false。

    null undefined

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

    null表示变量的值是空,

    undefined则表示只声明了变量,但还没有赋值。

    对象: object

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

    数组: (列表)

    var a = [1,2,3,4];
    var b = ['a','b','c','d']
    console.log(a)
    console.log(b)
    

     常用方法:

    console.log(a.length);
    
    // 数组末尾追加
    a.push(5);
    console.log(a);
    
    // 末尾删除,返回一个删除的元素
    // a.pop();
    console.log(a.pop());
    console.log(a);
    
    a.unshift('头部添加用unshift');
    console.log(a);
    
    // 头部删除 没有返回值
    a.shift();
    console.log(a);
    
    // 切片取值
    a2 = a.slice(0,2);
    console.log(a2);
    
    // 翻转列表
    a.reverse();
    console.log(a);
    a.reverse();
    console.log(a);
    
    // 数组拼接成字符串
    a3 = a.join('+');
    console.log(a3);
    
    
    // 删除添加元素/不删除添加元素 返回删除的东西 (可定点插入)
    // ( 索引开始  索引结束 要添加的元素)
    a.splice(1,2,'添加的元素');
    console.log(a);
    
    // 按照ASCII码排序
    a = [2,1,33,55,9,0];
    a.sort();
    console.log(a);
    
    关于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)
    

     遍历数组中的元素

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

    类型查询

    typeof "abc"  // "string"
    typeof null  // "object"
    typeof true  // "boolean"
    typeof 123 // "number"

    typeof是一个一元运算符

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

    对变量或值调用 typeof 运算符将返回下列值之一:

    • undefined - 如果变量是 Undefined 类型的
    • boolean - 如果变量是 Boolean 类型的
    • number - 如果变量是 Number 类型的
    • string - 如果变量是 String 类型的
    • object - 如果变量是一种引用类型或 Null 类型的

    运算符:

    1. 算术运算符

    + - * / % ++ --
    

    2. 比较运算符

    > >= < <= != == === !==
    
    注意:
    1 == “1”  // true
    1 === "1"  // false
    

    3. 逻辑运算符

    && || !
    

     快速把一个变量转换成布尔值

    !!1
    

    4. 赋值运算符

    = += -= *= /=
    

    流程控制

    if else:

    a = 10;
    if (a>5){
        console.log('大了')
    }else {
        console.log('小了')
    }
    

    if else if else

    b = 10;
    
    if (b>10){
        console.log('bigger');
    } else if (b<10) {
        console.log('smaller!');
    } else {
        console.log('ok');
    }
    

    switch / case, break

    today = 2;
    
    switch (today) {
        case 1:
            console.log('周一吃米饭');
            break;
        case 2:
            console.log('周二吃面条');
            break;
        case 3:
            console.log('周三吃馒头');
    break; }

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

    for 循环

    a = 10;
    for (i=0;i<a;i++){
        console.log(i);
    }
    

    while 循环

    i = 0;
    while (i<10) {
        console.log(i);
        i++;
    } 
    

    三元运算

    var x = 22;
    var y = 2;
    
    var c = x>y ? x:y

    c = x>y ? x:y

    c =  if ( x>y )  else( ? )  x (  :  或者的意思) y

  • 相关阅读:
    MySQL状态变量Aborted_connects与Aborted_clients浅析
    ERROR 1044 (42000): Access denied for user 'root'@'localhost'
    ERROR 3009 (HY000): Column count of mysql.user is wrong…..
    服务器CPU繁忙或内存压力引起网络掉包的浅析与总结
    ORACLE如何找到引起账号锁定的IP的一点思考与总结
    记一次坑爹的ORA-01152&ORA-01110错误
    RMAN restore fails with ORA-01180: can not create datafile 1
    SQL Server的优化器会缓存标量子查询结果集吗
    Snapshot origin volumes can be resized only while inactive: try lvchange -an
    MySQL InnoDB下关于MVCC的一个问题的分析
  • 原文地址:https://www.cnblogs.com/niuli1987/p/9584427.html
Copyright © 2011-2022 走看看