JavaScript 变量的定义和储存值的类型判断

🌙
手机阅读
本文目录结构

变量与数据

变量保存的数据可以在需要时设置、更新或提取。

赋给变量的值都有对应的类型。

解释说明

// tb='淘宝';

var jd="京东商城";
//    var z="亚马逊';// 双引号" 和单引号' 不能混合使用
var xx;
/*
* var        variable 变量 let const  声明变量的关键字;
* jd         这是变量名
* =          这是操作符
* "京东商城"  这个是数据
*
* 把"京东商城",这段数据,通过=来赋值给jd这个变量名;
* */
console.log(jd);
console.log(xx);//undefined
//    console.log(tb);

//"京东商城"  字符串"" 和 '' 包裹的内容 属于字符串类型

注意:双引号 " 和单引号 ' 不能混合使用

变量的定义和赋值

  • var a=“hello word”

  • 英文全称是 variable ,定义变量是关键字就是 var

    var a="hello word";
    //var 是变量声明符号,类似的还有 let const(后面会介绍)
    //a     是变量名,可以任意起,但是有些单词属于关键字和保留字是不能用的,后面会介绍
    //"hello word"  是代表了JS中的数据值;
    
    //函数的写法
    function greetMe(user) {
    	return "Hi " + user;
    }
    
    greetMe("anbang"); // "Hi anbang"
    
  • 用等号把 a"hello word" 连接起来的意思

    • 把数据hello word这个字符串赋值给 a 这个变量,等号右边赋值给等号左边;
  • 其中""''这种包裹的类型,在JS中称为字符串,是一种数据类型;

    • 再次强调:双引号 " 和单引号 ' 不能混合使用
    • 字符串还可以使用模板字符串 `` 来实现
  • 下面这些在JS中都是合规的写法,分别代表不同的类型

    var string="2222";				//字符串
    var symbol2 = Symbol(42);	//symbol
    
    var testNum=2;						//数字
    var testNum2=2n;					//bigint
    
    var tetBool=true;					//布尔值
    
    var testUndef=undefined;		//understand
    var testNull=null;					//null
    
    var tetFun=function () {};	//函数
    var testObj={name:"anbang"};//对象,JS中的一切数据的基础;
    
  • 变量类型是由分配数据时候决定的(赋值后才决定的),所谓的变量类型,其实就是数据类型;

  • 先了解下JS中的数据类型:

    • 基本数据类型
      • stringsymbolnumberbigintbooleannullundefined
    • 引用数据类型
      • object : {}、[]、/^$/、Date
        • 特殊的 function
  • 数据和数据类型是学编程的第一件事;

JavaScript的数据类型相比别的语言比较简单;

Javascript中数据类型的typeof判断

  • 最简单的检测数据类型的方式是通过typeof的方式来检测;
  • typeof 后面加所需要判断的数据或者变量即可;
  • string、symbolnumberbigint、boolean、null、undefined、Object(function)
var string="2222";	//字符串
var symbol2 = Symbol(42);	//symbol

var testNum=2;						//数字
var testNum2=2n;					//bigint
var tetBool=true;						//布尔值
var testUndef=undefined;		//understand
var testNull=null;					//null
var tetFun=function () {};	//函数
var testObj={name:"anbang"};//对象,JS中的一切数据的基础;

console.log(typeof string);		//string
console.log(typeof symbol2);		//symbol
console.log(typeof testNum);	//number
console.log(typeof testNum2);	//bigint
console.log(typeof tetBool);	//boolean
console.log(typeof testUndef);	//undefined
console.log(typeof testNull);	//object
console.log(typeof tetFun);		//function
console.log(typeof testObj);	//object

数据类型的意义

数据类型的多少是由这门编程语言的应用场景决定的;

JavaScript的类型有数字、bigint、symbol、字符串、布尔值、函数和对象。

还有undefined和null,以及数组、日期和正则表达式。

  • 有多少数据类型是由这种语言的作用决定的, 最直接的就是这种语言需要解决什么问题?
  • sql语言,JAVA语言的类型比JS多很多,那是因为那些语言要做的事情决定的,
  • 而JS是一门轻量级的脚本语言,虽然不够完善,但是已经可以解决日常开发所需要的事情了,后面升级只是对以前的严禁写法和升华;

Javascript中代表的数据的变量,可以随意修改类型;

但是不建议这么做;

//Javascript中代表的数据的变量,可以随意修改类型;但是不建议这么做;
var testVar=2;
console.log(typeof testVar);//number
testVar="3";
console.log(typeof testVar);//string

testVar=true;
console.log(typeof testVar);//boolean

testVar=undefined;
console.log(typeof testVar);//undefined

testVar={name:"anbang"};
console.log(typeof testVar);//object

虽然上面,一个变量可以随便的写,但是这样做会使变量边混淆;

如果你把一个变量保存为某种数值;那么推荐你这个变量不要在别的地方再使用;

这样写出来的程序会非常清晰;

不推荐一个变量,用于多种用途;

var total = 0;    //用来储存统计;
var timer = null; //用来储存定时器

console.log

console.log方法能接收多个参数,有下面2种写法

  • console.log("string" + num);
  • console.log("string", num);

为了方便,模板字符串也在被大量经常的使用

  • console.log(`阿西河前端教程 - ${2+1}`);
console.log("info","haha");
console.log("info2"+"haha2");

console.warn("这是一段警告信息");
console.error("出错啦,你的配置信息有误");

console.log(`阿西河前端教程 - ${2+1}`)

当然单个的也是可以的;

console.time 和 console.timeEnd

演示见下面

console.assert

console.time("hahaha");
//    alert("22222");
console.log("info","haha");
console.log("info2"+"haha2");

console.warn("这是一段警告信息");
console.error("出错啦,你的配置信息有误");

//    alert(typeof "22");

//    断言

var a=1;
var b=2;
//=  ==
//=  这是用来赋值的;
//== 这个是用来判断的
console.assert(a===1,"这时候条件是a==1,实际a是1");
console.assert(b===1,"这时候条件是b==1,实际b是2");

//性能分析;
console.timeEnd("hahaha");//6.50390625ms

// console.dir(window);

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了