复习JavaScript及常见面试题

为什么要学习Javascript?

一个前端网页主要由三门语言组成,他们之间是缺一不可的关系

HTML:确定网页的结构

CSS:确定网页的样式

JavaScript:确定网页的行为(交互)

总结:

首先因为前端网页由三部分组成HTML、CSS、JavaScript。其次JavaScript能直接控制可见的html页面元素,它运行的结果在浏览器里面也是直接可见的。

JavaScript三大组成


JavaScript的三个部分为:

ECMAScript(JavaScript语法规范),是JS的基础也是核心。
DOM(Document Object Model 文档对象类型),Web APIs一部分,提供与网页内容交互的方法和接口。
BOM(Browser Object Model 浏览器对象模型),Web APIs一部分,提供与浏览器交互的方法和接口。
 

JavaScript的三种书写方式:


1.外部样式:写在js文件中,使用script的src属性导入
<script src="./01-JS外部写法.js"></script>
2.内部样式:写在script标签中,如果界面js代码较少可以使用,复杂的话不推荐
<script >alert("这是JS内部样式")</script >
3.行内样式:不推荐,因为不便于维护
<button οnclick="window.alert('高富帅')">都是D7321</button>

细节注意点

1.无论是CSS还是JS的三种写法,当一个html文件存在多种写法时要记住HTML的代码是从上往下解析的

2.如果script标签没有src属性则表示内联样式,如果有src属性则表示外联样式,外联样式JS代码只能写在
js文件中而不能写在script标签中

JavaScript的输入输出语句

 

图上为js的输入语句

图上为js的输出语句 

js的两种注释方式:

1. 单行注释
为了提高代码的可读性,JS与CSS一样,也提供了注释功能。JS中的注释主要有两种,分别是单行注释和多行注释。单行注释的注释方式如下:

// 我是一行文字,不想被 JS引擎 执行,所以 注释起来

// 用来注释单行文字( 快捷键 ctrl + / )

2.多行注释
多行注释的注释方式如下:

/*
 获取用户年龄和姓名
 并通过提示框显示出来
*/


/* */ 用来注释多行文字( 默认快捷键 alt + shift + a )
快捷键修改为: ctrl + shift + /
vscode - 首选项按钮 - 键盘快捷方式 -查找 原来的快捷键 - 修改为新的快捷键 - 回车确认

JavaScrip中的堆栈?

什么是堆栈?

  我们都知道:在计算机领域中,堆栈是一种数据结构,而且是一种数据项按序排列的数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除。

JavaScript的数据类型分为两大种:

基本类型:Undefined、Null、Boolean、Number 和 String,这5中基本数据类型可以直接访问,他们是按照值进行分配的,存放在栈(stack)内存中的简单数据段,数据大小确定,内存空间大小可以分配。
引用类型:即存放在堆(heap)内存中的对象,事实上,引用数据类型的地址指针是存储于栈中,当我们想要访问引用类型的值得时候,需要先从栈中获得对象的地址指针,然后通过地址指针找到堆中的所需要的数据。
 

ES6有哪些新特性:

1、let 和 const
let 表示申明变量。const 表示申明常量
常量定义了就不能改了。对象除外,因为对象指向的地址没变。
const在申明是必须被赋值。
两者都为块级作用域。
2、模板字符串
3、解构
4、函数的默认值
5、Spread / Rest 操作符,三个点…
6、箭头函数
7、for of
for of遍历的是键值对中的值
for in遍历的是键值对中的键
8、class类,原型链的语法糖表现形式
9、导入导出
导入improt
导出export default
10、promise
Promise 用于更优雅地处理异步请求。
11、async/await
比promise更好的解决了回调地狱
12、Symbol,新的基本类型
13、Set集合
存储任何类型的唯一值,即集合中所保存的元素是不重复的。类数组结构。
let arrNew = new Set(待去重的数组)


js中的string常见方法

1.charAt() 返回指定位置的字符。
2.charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
3.concat() 用于连接两个或多个字符串。  
4.fromCharCode() 接受一个指定的 Unicode 值,然后返回一个字符串。
5.match() 在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。匹配不到返回Null。6/replace() 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
7.split() 用于把一个字符串分割成字符串数组。
8.substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

9.substring() 方法用于提取字符串中介于两个指定下标之间的字符(类似slice)。
10.toLocaleUpperCase() / toLocaleLowerCase() 用于字符串转换大小写(与下面的方法方法仅在某些外国小语种有差别)

11.toUpperCase() / toLowerCase() 用于字符串转换大小写


null和undefined区别

1、null表示一个'无'的对象,即该处不应该有值,undefined表示一个'无'的原始值,就是此处应该有一个值,但是还没有定义。转为数值时都为NaN。

2、null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。undefined表示'缺少值'。

3、undefined的典型用法:
    a、变量被声明了,但是没有赋值时,就等于undefined。
    b、调用函数时,应该提供的参数没有提供,该参数等于undefined。
    c、对象没有赋值属性,该属性的值为undefined。
    d、函数没有返回值时,默认返回undefined。
    
4、null的典型用法:
    a、作为函数的参数,表示该函数的参数不是对象。
    b、作为对象原型链的终点。
    
5、undefined是基本类型的数据,null是对象类型的数据


==和===区别

等于操作符:

等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true。

等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等。

全等操作符:

全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。即类型相同,值也需相同。

区别:

相等操作符(==)会做类型转换,再进行值的比较,全等运算符不会做类型转换。

null 和 undefined 比较,相等操作符(==)为true,全等为false。

什么是严格模式?

除了正常运行模式(混杂模式),ES5 添加了第二种运行模式:“严格模式”(strict mode)。
顾名思义,这种模式使得 Javascript 在更严格的语法条件下运行。

严格模式的作用:

  1. 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。
  2. 消除代码运行的一些不安全之处,保证代码运行的安全。
  3. 提高编译器效率,增加了运行速度。
  4. 为未来新版本的Javascript做好铺垫。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值