JS变量及其相关属性方法

变量提升

作用域

全局作用域,函数作用域,块级作用域(ES6,即一对大括号内{});

var定义函数级变量,const定义函数级常量(必须初始化),
let定义块级变量,

const a = "a";//必须赋值
var yo = "Muhaha";
const b = yo;//动态
console.log(a)//输出a
console.log(b)//输出Muhaha

yoo()
var c = "c"
function yoo(){
  console.log(c);//输出c
  for(let i = 1;i<3;i++) { 
    var d = "d"
    let e = "e"
    console.log(e)//输出e,e
  } 
  console.log(d); //输出d
  console.log(e); //不输出,e is not defined
} 

变量提升

变量定义自动提升,赋值或引用需要自己提升优先级

console.log(a)//输出undefined
var a = "a"
console.log(a)//输出a

提升后:

var a = 
console.log(a)
a = "a"
console.log(a)

函数提升

变量/函数提升

出题:结合变量提升,函数提升,作用域

封装

;(function(){})()的作用

值得类型(数据类型)

对象的类型:本地对象,内置对象,宿主对象
本地对象:如Aarry,Boolean,Date,Number,String,RegExp…
内置对象:Global,Math。

值分为基础类型和引用类型

  1. 基础类型:赋值和传递(复制)
    Number,String,Boolean,Undefined,Null
var a = 2;
var b = a;//b复制a的值
b++;//b和a的值互不影响,b重新赋值
  1. 引用类型:引用的赋值和传递,(不是复制,引用是指向原始值)
    Function,Array,Date,RegExp,Error
var a = [1,2,3]
var b = a;//b复制a指向数组的指针,通过a/b修改元数组改变会影响a和b
b=[1,2,3,4]//重新赋值后,指针改变,b和a指向不同的元数组,此时通过a/b修改的是不同的元数组

引用:如何理解JavaScript中给变量赋值,是引用还是复制

变量的比较

==自动转换数据类型再比较;
===不自动转换并先比较数据类型;

  1. 函数转换:parseInt(),parseFloat(),Number(),Boolean(),toString()
  2. 隐形转换:字符串和数字:比较时,自动Number()转为数字类型;进行加法运算时,自动转为字符串拼接。

0,null,undefined,NaN,false为false;
{},[],infinity为true;
NaN === NaN 为false;唯一方法:isNaN(NaN)
{}对象的比较:相同指针的对象为true,不同的为false即使数据相同;{}==={}为false;
true === true为ture,其他都为false

String对象

属性:length;
方法:concat()连接,indexOf()检索,match()/search()正则,slice()/substr(index,length)/substring(starIndex,endIndex)提取,split()分割,toString(),valueOf()

转为字符串toString()后substr()/subString();其中substring()参数为非负整数;

Array对象

属性:length;
方法:concat()连接,join()放入字符串,push()/unshift()增并返回新长度,pop()/shift()删并返回被删元素,sort()排序,slice()提取,splice()分割合并新数组,toString(),valueOf()

ES6相关

变量的解构赋值
新增String方法:iscludes(…)是否包含,stratsWith(…)以…开头,endsWith(…)以…结尾,repeat(…)寻找…。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值