JavaScript 输入、输出、数据类型以及var let const 的区别

一、js引入

引入外部js的script标签内不能写代码,不然没效果


二、输入输出语法

1、document.write():输出在html页面上

2、console.log() :输出在控制台上

3、 alert():弹窗


三、输入语法

prompt()

四、字面量

也就是变量类型,比如字符串字面量,数组字面量等


五、变量

指程序中反复使用的数据 保存为变量再参与运算

在内存内开辟一段空间用于存储变量

字母、下划线、数字、$ 不能数字开头 字母区分大小写


六、var let const

(1)块级: 块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:

  • 内层变量可能覆盖外层变量

  • 用来计数的循环变量泄露为全局变量

(2)变量提升: var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。

(3)给全局添加属性: 浏览器的全局对象是window,node的全局对象是global。var声明的变量为全局变量,并且会将该变量添加为全局对象的属性,但是let和const不会。

(4)重复声明: var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的遍历。const和let不允许重复声明变量。

(5)暂时性死区: 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区。使用var声明的变量不存在暂时性死区。

(6)初始值设置: 在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。

(7)指针指向: let和const都是ES6新增的用于创建变量的语法。 let创建的变量是可以更改指针指向(可以重新赋值)。但const声明的变量是不允许改变指针的指向。


七、数据类型

1、基本数据类型(简单数据类型):直接将值存放栈里

        number string boolean undefind null symbol、BigInt

2、引用数据类型(复杂数据类型):值存放在堆里面,栈里面保存的是地址,地址指向堆里面的值

        object对象(里面包含function 、Array、Date、Math等等)

3、两者区别

赋值会在栈里面进行,所以复杂数据类型的赋值其实是地址的赋值,例如:let obj1 = obj 如果obj是复杂数据类型,那么这里是将obj的地址赋值给obj1 ,所以其他他们两个指向的堆里面的同一片位置(同一数据)

4、检测数据类型的方法

①typeof 只能检测基本数据类型(null 返回的是object)

②instanceof:只能检测引用数据类型

③Object.prototype.toString.call():基本类型和引用数据类型都能检测


八、NaN 也是一个number 类型 ,他是不规范的数学运算得到的结果


九、字符串string

1、转义符:\后面跟什么引号就把这个引号当作字符串来渲染

2、模板字符串也就是反引号

反引号可以用于字符串的拼接 如:练习生${time}的人;其中time是变量


十、检测数据类型

1、typeof

    let age = '20'
    console.log(typeof age)
    得到的结果为:string

①⭐⭐null的typeof结果为对象(object)

②⭐⭐undefined 指的是未定义的,变量声明但没有赋值结果就是undefined

2、instanceof:只能检测引用数据类型

3、Object.prototype.toString.call():基本类型和引用数据类型都能检测


十一、类型转化

1、隐式转化

运算时,内部自己对数据类型做的转化

数字转字符串(数字+空字符串)(因为字符串做+任何内容结果都是字符串)

字符串转数字(+str)或者(字符串-0)(因为除了+以外的- * /等运算都可以做隐式转化,将数字字符串转化成数字 )

2、显式转化⭐

①Number():转化为number类型,非数字字符串变成NaN

②parseInt():转换为number类型 并且保留整数部分

③parseFloat():转换为number类型 ,并返回一个浮点数。

④String():转换为字符串类型

⑤tostring():转换为字符串类型(num.tostring())

十二、交换两个变量

// 交换两个变量 , 注意[]前面加分号
    let a = 123
    let b = 567

    ;[a, b] = [b, a]
    console.log(a, b)

    // JS里面  一个是  ()前面加分号
    //               [] 前面加分号

  • 注意prompt 、表单等接收过来的数据默认是字符串类型
  • 字符串做+任何内容结果都是字符串
  • 除了+以外的- * /等运算都可以做隐式转化 ,将数字字符串转化成数字
  • 但是+作为正号的时候可以隐式转化 如:+str (str是个数字字符串)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值