Javascript基础知识点整理一:变量类型和计算

IFE     2019年03月17日     分类:   前端知识体系     标签:   javascript     浏览量:   1563


1. js变量类型

javascript的每个值,都属于某一数据类型。 按存储方式分为:值类型引用类型
值类型有:string number boolean null undefined symbol。值类型的值复制不会相互干涉。
引用类型有:object。 它又可以分为3个子类型:狭义的对象(object)、数组(array)、函数(function)。
引用类型的变量共用内存块节省空间,可以无限扩展属性。引用类型复制是变量指针的复制,修改是相互干预的。

    var a={age:20};
    var b=a; 
    b// Object {age:20}
    b.age = 21;
    b// Object {age:21}
    a// Object {age:21}
    a === b // true

2. js中使用tepeof能得到哪些类型

typeof返回的值有:undefined.string.number.boolean.object.function;所以它只能区分值类型的详细类型。
注意:undefined是值类型,null是Object,typeof(null)也返回object,因为空的对象什么也没有,只是定义了这个位置。

3. 类型转换

JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值,即变量的数据类型是不确定的。
但是各种运算符对数据类型是有要求的。当使用:字符串拼接,==运算符,if语句,逻辑运算(与 || !)时,如果运算符发现,运算子的类型与预期不符,就会自动转换类型。
也可通过Number()、String()和Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。

4. js中的内置函数

不考虑运行环境,有:Boolean,Number,String,Array,Object,Function,Date,Error,RegExp。所有的引用类型都有构造函数。

5. == 和 ===

它们的区别是相等运算符 == 比较两个值是否相等,严格相等运算符=== 比较它们是否为“同一个值”。
如果两个值不是同一类型,严格相等运算符===直接返回false,而相等运算符 == 会将它们转换成同一个类型,再用严格相等运算符进行比较。

推荐只有当:1,看某个对象的属性是否存在。2,看某个函数的参数是否存在 ,使用==, 其余情况都使用===

if(obj.a == null) {
    //这里相当于obj.a ===null || obj.a===undefined,简写形式,判断某个对象的属性是否存在
    //这是jQuery源码中推荐的写法
}
if(obj.a == null) {}//看某个对象的属性是否存在

6. 真值和假值

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。
下列运算符会返回布尔值:

  • 前置逻辑运算符: ! (Not)
  • 相等运算符:=== ,!== ,==,!=
  • 比较运算符:>,>=,<,<=

如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了:false,0,NaN,'',undefined,null被转为false,其他值都为true

if(false||0||NaN||''||undefined||null) //false

7. json的理解

JSON 和Math一样,只不是一个JS 内置对象而已,内置在JS的内置语法里,有两个API:

JSON.stringify({a:10,b:20});
JOSN.parse('{"a":10,"b":20}');

同时JS也是一种数据格式(JavaScript Object notation)js对象表示法(对象表示为键值对,数据由逗号分隔,花括号保存对象,方括号保存数组)


评论总数: 0


登陆后才可以评论