zoukankan      html  css  js  c++  java
  • JavaScript基础要点

    一、值和类型及运算

    JavaScript中的六种基本值类型

      数字(number)、字符串(string)、布尔值(boolean)、对象(object)、函数(function)、未定义类型(undefined)。

    NaN

      NaN是number类型,但我们用它来表示 “非数值” 。这样来理解它:对于一个期望返回number类型值的运算,但js却对表达式中的运算过程很困惑,于是就返回了一个NaN(not a number)给你,用来告诉你这个运算是非法的,结果是不精确的或毫无意义的。

      在js中只有一个值不等于其自身,这个值就是NaN!

    console.log(typeof NaN);
    console.log("string" - 1)
    console.log(NaN == NaN)
    -------------------------------------------

      number
      NaN
      false

     

    变量

      我们可以把变量想象成许多的触须,而不是一个箱子。变量中并不包含值,而是会引用这些值

     

    字符串

      在对字符串进行比较时,JavaScript按照从左到右逐个比较每个字符对应的ASCII码值。

     

    强制类型转换

      当运算符作用在错误类型的值上时,JavaScript会自动将其转换成自己期望的值,这种操作称为强制类型转换。

     

    逻辑运算符的短路特性

      对于或运算符 || ,从左到右遇见第一个true就发生短路,对于与运算符 && ,从左到右遇见第一个false就发生短路。短路之后立刻就返回这个短路值,不再进行计算后面的表达式。

     

    null 和 undefined

      对于 == 运算,如果运算符两侧存在null或undefined,那么只有两侧均为null 或undefined时,结果才为true。

    console.log(null == 0)
    console.log(null == undefined)
    -------------------------------------------

      false
      true

    二、函数

    定义

      定义一个函数就是定义一个普通的变量,只不过变量的类型是函数(function)。例如,下面的代码定义了一个变量square,引用了一个函数

    var square = function(x){
        return x * x;
    }
    console.log(square(12));

    ---------------------------------------

    144

      和大多数编程语言一样,JavaScript也可以这样声明函数:

    function square(x){
        return x * x;
    }
    console.log(square(12));
    ---------------------------------------

    144

      可以在任何位置调用已经声明的函数。这是因为,当代码执行时,函数的声明会被移到其作用域的顶端,所有作用域内的函数调用都不会有任何问题。并且在JavaScript中,函数可以嵌套定义。

    参数 和 作用域

      在函数内部创建的变量和参数,都属于函数的局部变量。

    var x = 0;
    var test = function(x){
        x = 1;
    }
    console.log(x);  //可以看到全局变量中x的值并未改变
    ---------------------------------------

    0

      JavaScript对传入函数的参数数量没有限制。如果有多余的参数,则它们会被忽略掉;未传入实值的参数,会被赋值为 undefined。

    创建一个匿名函数并立刻执行的语法

    要用小括号把函数的定义括起来。例如:

    (function() {
        console.log("Hello");
    })();

    如果写成下面这样,将会报错:

    function() {
        console.log("Hello");
    }();    // SyntaxError

    对于有参数的匿名函数可以这样写:

    var x = (function(x) {
        return x*x;
    })(3);
    console.log(x);    // 9

     三、对象类型:object

    对象

    object类型的值可以存储任意类型的属性,我们可以随意增删这些属性。一种创建对象的方法是使用花括号{}:

    /*
    属性之间用逗号分隔,属性定义方式是 propName: propValue,
    如果propName不是有效的变量名或数字,则需使用引号将其括起来

    var
    me = { myName: "Mr Hu", myAge: 20, myHobby: ["English", "sing", "travel", "chat"], "I Love You": true, } console.log("my age is " + me.myAge); console.log("I Love You:" + me["I Love You"]); console.log("The type of me is: " + typeof me);

    ------------------------------------------------------------

      my age is 20
      I Love You:true
      The type of me is: object

     学过python的朋友会发现JavaScript中的对象和Python中的字典十分十分相似。

     属性

    在JavaScript中,几乎所有的值都有属性,但null和undefined没有。

    访问属性的方法有两种:

    1. 使用 "."操作符,该操作符之后必须接一个合法的变量名,即属性名称。
    2. 使用 [],如果使用[],则JavaScript会将方括号中的表达式的返回值作为属性名称。

     = 运算符

    我们可以使用 = 运算符来给一个属性表达式赋值。如果该属性已经存在,那么新值将替换旧值;如果之前不存在该属性,则会自动创建该属性并赋予新值。

    delete 运算符

    我们可以使用 delete 运算符移除目标对象的指定属性。

    四、语法

    分号

    JavaScript并不强制要求在每个语句的结尾加分号,浏览器中负责执行js代码的引擎会自动在每个语句之后加上分号,但这种情况可能会改变程序的语义,导致运行结果与我们的期望不一致。所以建议在每个语句后面手动加上分号。

     

     

     

     

     

     代码编写规范

      建议在循环语句或if语句中,无论其中执行体中是有一行代码还是多行代码,都将其包装在花括号中。

      建议使用驼峰命名。

  • 相关阅读:
    Python(93)_网络编程基础
    Web前端(13)_路径
    Web前端(12)_注释
    Web前端(11)_base标签
    Python(91)_python复习
    Web前端(10)_css文本样式
    Web前端(9)_div+span等标签
    虚拟化(6)_CPU虚拟化
    虚拟化(5)_打开tcp监听
    虚拟化(4)_离线克隆与在线克隆
  • 原文地址:https://www.cnblogs.com/huwt/p/10597502.html
Copyright © 2011-2022 走看看