js基础讲解

js 基础
变量
1变量就是一个存储数据的容器
2声明变量使用var关键字
3变量的声明
js
var name = '右侧为表达式'
// var 是声明变量的关键字
// name 是变量的名字
// = 赋值运算符
// = 右侧表达式

var提升变量,至少把变量提升到作用域的最顶层,变量的赋值不会提升,依旧保留在原始位置

内存分配
内存中的栈(有序存储):存储基础数据类型的数据、字符串、数字、布尔值
内存中的堆(无序存储):存储的是复杂、引用类型数据、对象、数组

变量名规范
1 变量名不能是js的关键字或保留字
2 变量名不能数字开头
3 可以使用$、下划线、英文字母
4 遵循语义化规则,让变量有意义
5 尽量使用驼峰命名法:
   大驼峰命名法:myname => MyName,单词首字母大写
   小驼峰命名法:myname => myName,除了首字母其他大写
6 变量首字母应该对应数据类型
字符串:var s_name
数字:var n_count

作用域
定义:程序生效的空间
全局作用域:script(脚本)
顶级对象:window、document、
window又叫BOM
document又叫DOM
BOM包含DOM
局部作用域:function(函数)、module(es6)
顶级对象:this
内部声明的变量
声明在局部作用域中的变量不可外部使用,如果不使用关键字声明的变量。则会被提升到全局作用域
函数天生有返回值默认就是undefined

数据类型
基本数据类型(内存栈内存储)
数字
字符串
布尔值
空值 null
未定义 undefined
不是数字

引用数据类型(内存堆内存储)
数组
对象
函数
正则

基本数据类型和引用数据类型(区别)
基本数据类型在赋值时是在栈内开一个新的空间存储,多个变量使用同一个值也是对值的深拷贝,每个值都拥有独立的存储空间
引用数据类型在赋值时是在堆内开一个空间,将存储空间的标识码赋给了变量,多个变量赋值为同一个对象时,只是简单复用了标识码的引用,俗称浅拷贝

类型转换
字符串=>数组
字符串数字
所有的数据都可以相互转换

显示转换
从代码上可以直观看出在转换数据类型
使用数据的构造函数:string(),number(),array()
使用方法,比如转成字符串可以使用tostring方法

隐式转换
if表达式可以隐式转换
+任何值和字符串加,都会被转换为字符串
除了加其他减乘除都是尝试将数据转换为数字进行计算
逻辑运算符也会隐式转换数据

数据类型检测
typeof 对基本数据类型检测好用,对引用数据类型都是object
instanceof 检测一个值是不是属于一个数据原型上的,对于引用数据类型很精准
construceof 可以检测基本数据和阴影书记类型,但是检测不出空置类型,因为空置类型没有构造函数
obgect.prototype.tostring.call() 可以检测所有数据类型  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值