美文网首页
Javacript-基本概念

Javacript-基本概念

作者: Tom36 | 来源:发表于2017-12-18 09:08 被阅读0次

    一、语法

    1、区分大小写

    ECMAScript中的一切(变量、函数名、操作符)都区分大小写。

    2、标识符

    定义:就是指变量、函数、属性的名字,或者函数的参数
    书写规范:驼峰命名法:

    validCode
    doSomethingImportant
    

    3、注释

    //单行注释

    /*
    多行注释     
     */
    

    4、严格模式

    严格模式中,js中的一些不确定行为将会得到处理,对于一些不安全的操作也会抛出错误。

    "use strict";
    

    5、语句

    ECMAScript中的语句已一个分号(;)结尾,虽然可以省略,但建议不要省略。
    多个语句可以放到{ }中

    二、关键字和保留字

    定义:具有特殊用途和操作的关键字,不可用作标识符。例如:

    do  if  break  else  new……
    

    三、变量

    ECMAScript中的变量是松散类型的,即可以保存任何数据类型。 用 var 关键字定义。后跟变量名。
    var a = "message";
    定义多个变量:

    var message = "hi",
    found = false,
    age = 23;
    

    注意:

    var 操作符定义的变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁

    四、数据类型

    ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1 种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。ECMAScript不支持任何创建自定义类型的机制,而所有值最终都将是上述 6 种数据类型之一

    1、typeof

    作用:用于检测给定变量的数据类型,返回字符串

    "undefined"——如果这个值未定义;
    "boolean"——如果这个值是布尔值;
    "string"——如果这个值是字符串;
    "number"——如果这个值是数值;
    "object"——如果这个值是对象或 null;
    "function"——如果这个值是函数。

    2、Undefined类型

    Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined

            var message;
            console.log(message === undefined); //true
            console.log(message);  //"undefined"
            console.log(age);       //产生错误
            console.log(typeof message);  //"undefined"
            console.log(typeof age);  //"undefined"
    

    3、Null类型

    Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null。从逻辑角度来看, null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测 null 值时会返回"object"的原因

    如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。这样一来,只要直接检查 null 值就可以知道相应的变量是否已经保存了一个对象的引用。
    实际上, undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true:
    console.log(null == undefined) //true

    4、Boolean类型

    Boolean 类型是 ECMAScript 中使用得最多的一种类型,该类型只有两个字面值: true 和 false

    要将一个值转换为其对应的 Boolean 值,可以调用转型函数 Boolean(),例如

    console.log(Boolean("message")); //true
    

    各种数据类型及其对应的转换规则。

    数据类型 转换为true的值 转换为false的值
    Boolean true false
    String 任何非空字符串 ""(空字符串)
    Number 任何非零数字值(包括无穷大) 0和NaN
    Object 任何对象 null
    Undefined n/a(not application,即不适用) undefined

    这些转换规则对理解流控制语句(如 if 语句)自动执行相应的 Boolean 转换非常重要,下列代码在if()z中会自动执行Boolean()方法进行转换

    var message = "Hello world!";
    if (message){
       alert("Value is true");
    }
    

    5、Number类型

    简单了解整形、浮点型
    NaN
    两个特点

    • 任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN
    • NaN 与任何值都不相等,包括 NaN 本身
      isNaN()函数工作原理: isNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串"10"或 Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回 true
      数值转换

    有 3 个函数可以把非数值转换为数值: Number()、 parseInt()和 parseFloat()。第一个函数,即转型函数 Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。

    上述三个函数的功能具体看书

    6、String类型:

    • 了解转移字符
    • 了解字符串的特点:ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变
      -转换字符串:toString

    7、Object类型

    ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定义对象

    但关键是要理解一个重要的思想:即在 ECMAScript 中,(就像 Java 中的 java.lang.Object 对象一样) Object 类型是所有它的实例的基础。换句话说,Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。

    五、操作符

    各种操作符的奇技淫巧参看红皮书

    六、语句

    • if
    • while
    • do-while
    • for
    • for-in
    • label
    • break & countinue
    • with
      -switch

    七、函数

    函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。 ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。

    注意
    位于 return 语句之后的任何代码都永远不会执行

    function sum(num1, num2) {
        return num1 + num2;
        alert("Hello world"); // 永远不会执行
    }
    

    1、理解参数

    JS中参数的特点:不限制数量,不限制类型。是因为ECMAScript中的参数是用一个数组表示的。可通过arguments对象访问参数

    其实, arguments 对象只是与数组类似(它并不是 Array 的实例),因为可以使用方括号语法访问它的每一个元素(即第一个元素是 arguments[0],第二个元素是 argumetns[1],以此类推),使用 length 属性来确定传递进来多少个参数。

    2、没有重载

    没有重载的含义就是:如果在 ECMAScript 中定义了两个名字相同的函数,则该名字只属于后定义的函数

            function addSomeNumber(num){
                return num + 100;
            }
            function addSomeNumber(num){
                return arguments[0] + 200;
            }
            var result = addSomeNumber(100);
            console.log(result);   //300
    

    相关文章

      网友评论

          本文标题:Javacript-基本概念

          本文链接:https://www.haomeiwen.com/subject/hsqswxtx.html