js基础篇

  1. typeof 操作符
    typeof操作符可能返回以下的值
    undefined 值未定义
    boolean 值为布尔类型
    string 值为字符串
    number 值为数字类型
    object 值为对象或null
    function 值为函数
    typeof 示例
    let message='demo';
    typeof(message) //string
    typeof(95) //number
    typeof(age) //undefined
    

注:typeof为运算符,非函数,所以后面的小括号可加也可不加;其
判断的值可以为变量也可以直接跟值。
但是typeof有几个坑,需要注意:

  • null 返回的是object
  • NaN 返回的是number
  • 不能区分对象、数组、正则,对它们操作都返回'object'。
  • 对未声明的变量。typeof也会返回值 返回值为undefined
  1. Boolean类型
    对任何数据类型的值调用 Boolean() 函数,都会返回一个Boolean值
数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值 0和NaN
Object 任何对象 Null
Undefined n/a Undefined

注:n/a (或N/A)是not applicable的缩写,意思是‘不适应’

  1. instanceof操作符
    当数据类型是基本数据类型时候可通过typeof操作符来判断;
    当为引用类型的时候,想知道引用类型是什么类型对象的时候,则用instanceof操作符
person instanceof Object //person 是Object ?是返回true,否则为false
list instanceof Array // list是Array ?
  1. 内存分配
  • 基本数据类型保存在栈里面,在内存中占据固定大小的空间
  • 从一个变量向连一个变量赋值基本数据类型的值,会创建这个值得一个副本,二者互不干扰
  • 引用类型的值为对象 保存在堆中
  • 包含引用类型值得变量 包含的实际上并不是对象的本身 而是一个指向该对象的地址(指针)
  • 从一个变量向另一个变量复制引用类型的值,复制的其实是地址,因此这两个变量指向的其实是内存中的一个对象,修改任何一个,另一个也会被修改
  • 确定一个值属于那种基本类型可以用typeof操作符
  • 确定一个值是那种引用类型可以用instanceof操作符

你可能感兴趣的:(js基础篇)