最近几天,我初步学习了JS的变量和函数,有所收获,在此做一些记录。
变量
变量类型
类型 | 类型名 |
---|---|
字符串 | String |
数字 | Number |
数组 | Array |
布尔 | Bool |
对象 | Object |
无值默认 | Undefined |
变量的声明与赋值
变量的声明
var a;
let b;
复制代码
变量的赋值
var a=1;
var str="hello";
let c=true;
复制代码
变量的提升
用var声明变量,在运行时,会发生提升,全局变量会提升至整个js代码的最前端;局部变量会提升至函数体的最前端
关于var和let
使用var声明变量在一些实际使用场景有些许不足之处,如:
- 用var声明变量,在运行时,会发生提升,全局变量会提升至整个js代码的最前端;局部变量会提升至函数体的最前端
- 用var声明变量上,如果有多个同名变量的出现,后面的会覆盖前面的
鉴于var的这些特性,在一些特定场景,所以会发生一些问题。所以建议使用let。
const
用于常量的声明,例如:
const a=2;
复制代码
数据的存储
对于基本数据类型来说,它们是存储在栈区 ,对于引用数据类型说来,它们是存储在堆区。(数组存储在堆区)
全局变量和局部变量
变量均有全局变量和局部变量之分
这里的a为局部变量,因为它在函数体内部
function f(){
var a = 1;
console.log(name)
}
复制代码
这里的b为全局变量
var b = 100;
function f(){
console.log(b)
}
复制代码
一般可以认为,全局变量和局部变量的分界点是函数,函数内为局部变量,函数外为全局变量
函数
函数在js中占有举足轻重的地位,js是以函数为核心的编程语言
初识函数
函数是指一段在一起的、可以做某一件事儿的程序。 ——百度百科
函数的基本结构
function name(形参1,形参2,形参3) {
函数的内容
}
复制代码
形参与实参
如上面的函数基本结构,在定义函数时,括号里的为形式参数,实际使用该函数时调用的参数为实参。例如:
function sum(a,b) { //此处的a和b为形参
return a + b;
}
add(0,21); //此处的0和21为实参
复制代码
函数参数的传递也可分为按值传递和引用传递,即传值和传地址
函数的提升
与用var声明变量类似,使用function声明的函数,也会有提升现象。