JS基础

本文深入解析JavaScript的基础知识,涵盖变量声明方式、数据类型特点、模板字符串应用、函数特性和作用域规则,以及this关键字的常见陷阱和解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS是一种基于原型的面向对象语言,它只有原型对象的概念,原型对象就是一个模板,新的对象从这个模板构建从而获取最初的属性,任何对象在运行时都可以动态的增加属性,而且,任何一个对象都可以作为另一个对象的原型,这样后者就可以共享前者的属性。

一、变量

var 声明一个变量

let  声明一个块作用域中的局部变量

const  声明一个常量

二、数据类型

number:数值型,包括整型和浮点型

boolean:布尔型,true和false

string:字符串

null:只有一个值null

undefined:变量声明未赋值的,对象未定义的属性

object:是以上类型的复合类型,是容器

ES是动态弱类型语言,虽然先声明了变量,但是变量可以重新赋值任何类型

弱类型:不需要强制类型转换,会隐式类型转换

变量的类型typeof()

三、模板字符串

模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

反引号(`)可以用作普通字符串,多行字符串,模板字符串

模板字符串中嵌入变量,要将变量名写在${}之中。大括号内可以放入任意的JavaScript表达式,可以进行运算,以及引入对象属性。

四、函数

函数和匿名函数本质上是一样的,都是函数对象,只不过函数有自己的标识--函数名,匿名函数需要借助其他的标识。

使用函数表达式来定义函数,表达式中的函数名可以省略,如果这个函数名不省略,该函数名也只能在该函数内部使用

另:函数会声明提升,函数表达式则不会。

高阶函数:函数作为参数或返回一个函数

箭头函数:匿名函数更加精简的格式,如果没有参数,用();返回值中{}和return必须同时出现x=>{return x*2}或者{}和return都省略x=>x*2

函数的参数只做位置对应,可变参数用...args收集,所有的参数都会被保存在一个arguments的键值对字典对象中,若使用箭头函数,取到的arguments不是我们想要的

js提供了参数解构,使用...符号来进行解构

函数返回值:python中可使用return1,2返回多值,本质上也是一个值,就是一个元组;js的返回值是最后一个表达式的值,所以js的函数返回值依然是单值。

作用域:function是函数的定义,是一个独立的作用域,其中定义的变量在函数外不可见,var a=10可以提升声明,可以突破非函数的块作用域,但是不能突破函数;let a=10不能提升声明,而且不能突破任何的块作用域;a=100隐式声明不能提升声明,在’严格模式‘下会出错,但是可以把变量隐式

声明为全局变量,建议少用。

严格模式:使用’use strict‘,这条语句放到函数的首行,或者js脚本的首行。

 

五、this的坑

c++,java是静态编译型语言,this是编译期绑定,而js是动态语言,运行期绑定

观察函数调用的时候是否是普通函数的调用,若为普通函数的调用,此时的this是global,若没有绑定,得不到想要的结果,因此需要绑定。

ES6新技术,使用箭头函数,就不需要兼容this的问题

ES3 apply,call

ES5  bind

ES6 箭头函数

以上解决this问题的方法,bind方法最常用。

 

转载于:https://www.cnblogs.com/s-p-l/p/10146022.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值