JavaScript 基础(1)- 基本概念

JavaScript简介

JavaScript组成

JavaScript由三部分组成:javascript

  1. ECMAScript:JavaScript的核心,简写:es,描述了语言的基本语法(var、for、if、array等)和数据类型(number、string、boolean、undefined、null、object、Symbol)
  2. DOM:是 HTML 的应用程序接口(API),DOM 将把整个页面规划成由节点层级构成的文档。用 DOM API 能够轻松地操做HTML元素(getElementById、childNodes、appendChild、 innerHTML)。
  3. BOM:对浏览器窗口进行访问和操做,例如弹出新的浏览器窗口,移动、改变和关闭浏览器窗口,提供详细的网络浏览器信息(navigator object),详细的页面信息(location object),详细的用户屏幕分辨率的信息(screen object),对cookies的支持等等。

JavaScript注释

JavaScript注释由两部分组成:java

  1. 单行注释:
// 单行注释
复制代码
  1. 单行注释:
/* 多行注释 不能嵌套使用 */
复制代码

JavaScript引入方式

script标签能够有多个,按顺序执行数组

  1. 外部引入 .js 文件:
<script src='other.js'> // 要注意src指向的文件 路径
    // 若是连接了外部js文件,script标签内的代码就不执行了
    // 此处不能添加js代码
</script> 
复制代码
  1. 内部添加js代码:
<script>
    console.log('hello world'); // 控制台输出
    alert('hello world'); // 提示框输出
</script> 
复制代码

JavaScript输出方式

  1. 页面输出:
document.write('hello world');
复制代码
  1. 控制台输出:
console.log('hello world');
复制代码
  1. 提示框输出:
alert('hello world');
复制代码

JavaScript标识符

做用: 用来给变量、函数等命名浏览器

规则:bash

  • 由字母、数字、下划线、$组成cookie

  • 不能以数字开头网络

  • 不能使JavaScript中的关键字和保留字app

    保留字: 函数

    关键字:

  • 区分大小写ui

  • 遵循驼峰命名原则

  • 见名知意

JavaScript数据类型

基本数据类型

  • 数字(Number)

    1. 浮点数和整数
    2. 特殊的数字类型
      • NaN: 表示不是数字,当运算操做符错误的时候,通常会获得NaN
      • Infinity: 表示无穷大或无穷小,数字除以0获得Infinity
  • 字符串(String)

    特色:

    1. 单引号 或者 双引号 引发来的 是字符串
    2. 两个字符串相加不是运算,而已字符串的拼接
    3. 字符串加数字,先将数字转化为字符串,再进行拼接
  • 布尔值(Boolean)

    包括 true 和 false,经常使用在判断语句

    falsy值

    1. 数字 0
    2. NaN
    3. ' '(空字符串)
    4. false
    5. undefined
    6. null
    console.log(new Boolean());         // false
    console.log(new Boolean(0));        // false
    console.log(new Boolean(null));     // false
    console.log(new Boolean(""));       // false
    console.log(new Boolean(false));    // false
    console.log(new Boolean(NaN));      // false
    复制代码

    truthy值: 除了falsy值就是truthy

    console.log(new Boolean(1));                // true
    console.log(new Boolean(true));             // true
    console.log(new Boolean('true'));           // true
    console.log(new Boolean('false'));          // true
    console.log(new Boolean('Bill Gates'));     // true
    复制代码
  • Undefined

    声明但未初始化的变量会获得undefined

    var a;
    console.log(a); // undefined
    复制代码
  • Null

    一个没有任何引用的空对象

    var a = null;
    console.log(typeof a); // object
    复制代码
  • Symbol

    凡是属性名属于 Symbol 类型,就都是独一无二的,能够保证不会与其余属性名产生冲突

    let a = Symbol('a');
    let b = Symbol('a');
    
    typeof s; // Symbol
    console.log(a === b); // false
    
    复制代码

非基本数据类型

  • Object
    1. Array
    2. Function

判断数据类型

  • typeof + 变量名

    typeof 不能正确判断引用数据类型,如数组:

    typeof [] => 'Object'  
    复制代码
  • 变量名 + instanceof String/Number/Boolean/Object/Array/Function

    instanceof 不能判断 null 和 undefined(报错), 以及用字面量方式建立的 基本数据类型(必须用new 关键字去建立基本数据类型)

    '1' instanceof String  // false
    new String('1') instanceof String // true
    复制代码
  • 变量名 + .constructor === String/Number/Boolean/Array/Function/Object

    constructor 不能判断 null 和 undefined(报错), 下面这种状况也不能正确判断

    function Fn(){};
    Fn.prototype=new Array();
    var f=new Fn();
    console.log(f.constructor===Fn);  // false
    console.log(f.constructor===Array); // true
    复制代码
  • Object.prototype.toString.call(变量名) === '[object String/Number/Array/Date/Function/Object]'

    判断数据类型最可靠的方法

    var a = Object.prototype.toString;
    console.log(a.call("aaa"));         // [object String]
    console.log(a.call(1));             // [object Number]
    console.log(a.call(true));          // [object Boolean]
    console.log(a.call(null));          // [object Null]
    console.log(a.call(undefined));     // [object Undefined]
    console.log(a.call([]));            // [object Array]
    console.log(a.call(function() {})); // [object Function]
    console.log(a.call({}));            // [object Object]
    复制代码

变量和常量

变量

  • 用var 或者 let 定义,如var num = 0
  • 程序运行期间是能够改变的

常量

  • 用const定义,如const num = 0
  • 程序运行期间是不能够改变的(除object类型)
相关文章
相关标签/搜索