JS基础(一):变量与数据类型

JavaScript 变量

变量是用于储存信息的“容器”。

在 JavaScript 中创建变量通常称为"声明"变量。
创建变量name,值为“张三”的三种方法:

var name = "张三";
  • var声明 基本声明方式
  • 同一变量可以声明多次
  • 变量提升
let name = "张三";
  • let声明只在当前模块(作用域)生效
  • 同一变量只能声明一次
  • 不存在变量提升
const name = "张三";
  • const 声明一个只读变量,声明之后不允许改变。意味着,一但声明必须初始化,否则会报错。
  • 存在暂时性死区
  • 复杂类型的const用法需要慎重

同时声明多个变量,用逗号","隔开(var、let、const三种声明方式都相同):

var name = "张三",
age = 20,
sex = "男";

JavaScript 数据类型

基本数据类型
  1. 数字类型
    let num = 1;
    
  2. 字符串类型(双引号或者单引号的任意文本)
    let str = "a";
    let str2 = '1';
    
  3. 布尔类型(该类型只存在 true,false两个值)
    let boolY = true;
    let boolN = false;
    
  4. Undefined 和 Null
    var ud;  // undefined 空值,表示声明未赋值
    		 // null 表示未声明,没有
    
引用数据类型
  1. 数组

    let arr = [];
    let arr2 = new Array;
    
  2. 对象(可以对基本类型做出准确的判断,但对于引用类型,用它就有点力不从心了)

    let obj = {};
    let obj2 = new Object;
    
判断数据类型的方法
  1. typeof(只能检测出基本数据类型和函数)

    var a,
    num = 1,
    str = "a",
    bool = true,
    fun = function(){};
    	
    typeof a    // 返回 undefined
    typeof num  // 返回 number
    typeof str  // 返回 string
    typeof bool // 返回 boolean
    typeof fun  // 返回 function
    typeof null // 返回object,因为特殊值null被认为是一个空的对象引用
    
  2. instanceof(判断对象和构造函数在原型链上是否有关系,如果有关系,返回真,否则返回假)

    var a,
    num = 1,
    str = "a",
    bool = true,
    arr = [],
    fun = function(){};
    
    a instanceof Object     // 返回 false
    num instanceof Number   // 返回 false
    str instanceof String   // 返回 false
    bool instanceof Boolean // 返回 false
    arr instanceof Array    // 返回 true
    fun instanceof Function // 返回 true
    null instanceof Object  // 返回 false
    
    var num2 = new Number(1),
    str2 = new String('a'),
    boolean = new Boolean(true);
    num instanceof Number   // 返回 true
    str instanceof String   // 返回 true
    bool instanceof Boolean // 返回 true
    
  3. constructor(查看对象对应的构造函数)

    function fun(){}
    //fun.prototype.constructor = fun;   //每一个函数都会有,自动生成
    
    var num = 1,
    str = "a",
    bool = true,
    arr = [],
    fun = function(){};
    	
    num.constructor == Number   // 返回 true
    str.constructor == String   // 返回 true
    bool.constructor == Boolean // 返回 true
    arr.constructor == Array    // 返回 true
    fun.constructor == Function // 返回 true
    

    null和undefined是无效的对象,不会有constructor存在。并且使用constructor是不保险的,因为constructor属性是可以被修改的,会导致检测出的结果不正确。

  4. Object.prototype.toString (几乎可以判断出全部类型)

    var a,
    num = 1,
    str = "a",
    bool = true,
    arr = [],
    fun = function(){};
    
    Object.prototype.toString.call(a);   // [object Undefined]
    Object.prototype.toString.call(num); // [object Number]
    Object.prototype.toString.call(str); // [object String]
    Object.prototype.toString.call(bool);// [object Boolean]
    Object.prototype.toString.call(arr); // [object Array]
    Object.prototype.toString.call(fun); // [object Function]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值