资讯专栏INFORMATION COLUMN

【js基础】之变量类型和计算

LiuRhoRamen / 2135人阅读

摘要:值类型与引用类型值类型引用类型值类型引用类型类型转换字符串拼接运算符语句逻辑运算字符串拼接运算符语句逻辑运算符判断一个变量会被当做还是区分和会发生类型转换,没有类型转换。

1.数据类型

ECMAScript定义了6种数据类型,包括:

基本数据类型:Undefined、Null、Boolean、Number、String;

复杂数据类型:Object;

2.typeof操作符

typeof操作符可区分值类型,对于引用数据类型无法区分(只能区分出引用类型中的function)。

"undefined",如果这个值未定义;

"boolean",如果这个值是布尔值;

"string",如果这个值是字符串;

"number",如果这个值是数值;

"object",如果这个值是对象或者null;

"function",如果这个值是函数;

*判断一个对象(引用类型)是否为数组:arr instanceof Array,返回true、false。

typeof undefined;//undefined
typeof "abc";//string
typeof 123;//number
typeof true;//boolean
typeof {};//object
typeof [];//object
typeof null;//object
typeof console.log;//function
3.值类型与引用类型

值类型(Number,String,Boolean,Undefined)

引用类型(Object,Array,Function)

//值类型(Number,String,Boolean,Undefined)
var a = 100;
var b = a;
a = 200;
console.log(a);//200
console.log(b);//100

//引用类型(Object,Array,Function)
var a = {age:20};
var b = a;
b.age = 21;
console.log(a.age);//21
console.log(b.age);//21
4.类型转换

字符串拼接

== 运算符

if 语句

逻辑运算

//1.字符串拼接
var a = 100 + 10;//110
var b = 100 + "10";//10010

//2.== 运算符
100 == "100"; //true
0 == "";//true
null == undefined;//true

0 === "";//false
null === undefined;//false

//3.if 语句
var a = true;if(a){}
var b = 100;if(b){}
var c = "";if(c){}

//4.逻辑运算符
console.log(10&&0);//0
console.log(""||"abc");//"abc"
console.log(!window.abc);//true

//判断一个变量会被当做true还是false
var a = 100;
console.log(!!a);
5.区分 === 和 ==

==会发生类型转换,===没有类型转换。

if(obj.a == null){
    //这里相当于判断了obj.a === null || obj.a === undefined;简写形式
    //这是 jquery 源码中推荐的写法
}
6.JS中的内置函数

Object

Array

Boolean

Number

String

Function

Date

RegExp

Error

7.JS 中的内置对象

Math

JSON

8.如何理解JSON

JSON是一种数据格式,也是一个 JS 对象,有以下两个API。

JSON.stringify({a:10,b:20}) //把对象转为字符串

JSON.parse("{"a":10,"b":20}") //把字符串转为对象

技巧:
可将if语句转换为false的有if(0){}、if(NaN){}、if(""){}、if(null){}、if(undefined){}、if(false){}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94594.html

相关文章

  • JS基础常用小技巧知识总结(一)

    摘要:如果有一方是布尔值,则转换为,转换为,再进行判断。等同运算符类型不同返回类型相同如果同为数字字符串则比较值如果同为布尔值,相同则为不同为如果两个操作数同为引用类型,且引用的为同一个对象函数,数组,则相同。 本文主要记录平时开发遇到的知识点和小技巧 相等判断(==) 类型相同: 判断其值是否相同 类型不同: 1. 如果数字和字符串比较, 则字符串会被隐式转换为数字,在做判断。 2....

    dadong 评论0 收藏0
  • 前端面经整理JSCSS

    摘要:作为对象原型链的终点。调用函数时,应该提供的参数没有提供,该参数等于。它可以用于引用该函数的函数体内当前正在执行的函数。 一 JS 二 CSS 一 JS ==和===的区别 ===叫做严格运算符 ==叫做相等运算符严格运算符比较时不仅仅比较数值还要比较数据类型是否一样相等运算符在比较相同类型的数据时,与严格相等运算符完全一样。 在比较不同类型的数据时,相等运算符会先将数据进行类型转换,...

    stonezhu 评论0 收藏0
  • 前端面经整理JSCSS

    摘要:作为对象原型链的终点。调用函数时,应该提供的参数没有提供,该参数等于。它可以用于引用该函数的函数体内当前正在执行的函数。 一 JS 二 CSS 一 JS ==和===的区别 ===叫做严格运算符 ==叫做相等运算符严格运算符比较时不仅仅比较数值还要比较数据类型是否一样相等运算符在比较相同类型的数据时,与严格相等运算符完全一样。 在比较不同类型的数据时,相等运算符会先将数据进行类型转换,...

    lvzishen 评论0 收藏0
  • 温故知新JS基础

    摘要:访问属性是通过操作符完成的,但这要求属性名必须是一个有效的变量名小红的属性名不是一个有效的变量,就需要用括起来。闭包应用封装私有变量箭头函数箭头函数相当于匿名函数,并且简化了函数定义。 数据类型 NAN NaN === NaN; // false 唯一能判断NaN的方法是通过isNaN()函数: isNaN(NaN); // true 浮点数的相等比较: 1 / 3 === (...

    Dr_Noooo 评论0 收藏0
  • 【进阶1-3期】JavaScript深入内存空间详细图解

    摘要:进阶期理解中的执行上下文和执行栈进阶期深入之执行上下文栈和变量对象但是今天补充一个知识点某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行。 (关注福利,关注本公众号回复[资料]领取优质前端视频,包括Vue、React、Node源码和实战、面试指导) 本周正式开始前端进阶的第一期,本周的主题是调用堆栈,今天是第3天。 本计划一共28期,每期重点攻...

    coordinate35 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<