前端知识点回顾——Javascript篇(二)
JavaScript的解析顺序
第一阶段:编译期
寻找关键字声明的变量、函数声明的变量,同时会对变量进行作用域的绑定
var声明的变量,在编译期会赋一个默认值undefined,变量提升的特性。
ES6及以后所有的变量申明方式都不具备变量提升,在声明之前调用会报错,这个现象在语法上称为暂时性死区TDZ。
如果一个变量同时被var声明又被function声明,则变量提升的值以函数为准(函数为一等公民)。但最后是以赋值的数值作为变量的最终值。
console.log(a); //函数a console.log(2)
var a = 10;
function a() {
console.log(1);
}
function a(){
console.log(2);
}
console.log(a); //10
- 函数的形参也会有变量声明的行为,在编译期最后,执行期最前。
function fn(num) {
//形参也会有一个变量声明的行为,在编译最后执行最前
//根据实际情况我理解这个给形参赋予实参的数更像是var声明的变量提升后默认有undefined值一样
//所以下面console输出了函数,函数为一等公民
console.log(num); //输出函数num
var num = 3;
function num(){} //如果这里去掉则前面的console输出10
console.log(num); //3
}
fn(10);
第二阶段:执行期
数组和对象的深拷贝方法
数组: arr.concat() 或 [...arr]
对象: 若没有函数的话可以用JSON.stringify 和 JSON.parse转换,有函数就需要那种遍历的方法来拷贝。
日期对象Date
let date1 = new Date('2019/3/17 20:00:00'); //创建日期对象
//getFullYear
//getMonths 0-11
//getDate 1-31
//getDay 0-6
//getHours
//getMinutes
//getSeconds
//getTime
console.log(date1.toLocaleDateString()) //以本地表示方法表示日期
console.log(date1.toLocaleTimeString()) //以本地表示方法表示时间
console.log(date1.toLocaleString()); //上面两个的结合
console.log(date1.toDateString()); //标准方法表示日期
console.log(date1.toTimeString()); //标准方法表示时间
console.log(date1.toUTCString()); //标准方法表示的UTC时间
let date = new Date();
console.log(date.getTimezoneOffset());//-480 返回本地时间与UTC时间的分钟数差,UTC比东八区慢8小时
前端知识点回顾——Javascript篇(二)的更多相关文章
- 前端知识点回顾——Javascript篇(三)
数组的冒泡.选择和插入排序法 冒泡排序法(从小到大) function bubble(arr){ for(let i = 0 ;i<arr.length-1;i++){ for(let j = ...
- 前端知识点回顾——Javascript篇(六)
fetch 在原生ajax+es6promise的基础上封装的一个语法糖,返回promise对象. fetch(url, initObj) .then(res=>res.json()) .the ...
- 前端知识点回顾——Javascript篇(五)
DOM 常用的DOM获取方法: node.children 返回子元素节点,没有兼容性问题,动态获取 node.parentNode 获取父节点,没有兼容性问题 node.offsetParent 获 ...
- 前端知识点回顾——Javascript篇(四)
Symbol 为什么需要symbol ES5里面对象的属性名都是字符串,如果你需要使用一个别人提供的对象,你对这个对象有哪些属性也不是很清楚,但又想为这个对象新增一些属性,那么你新增的属性名就很可能和 ...
- 前端知识点回顾——Javascript篇(一)
DOM特殊元素获取 document.documentElement //HTML标签 document.head //head标签 document.title //title标签 document ...
- web前端知识点(JavaScript篇)
call,apply,bind call,apply,bind这三者的区别,及内部实现原理,点这里 promise promise函数的内部实现原理,点这里 闭包 闭包就是能够读取其他函数内部变量的函 ...
- 前端知识点回顾——HTML,CSS篇
前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...
- [转] Web前端优化之 Javascript篇
原文链接: http://lunax.info/archives/3099.html Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS 篇 重复的有几条.前端优化 ...
- 前端开发之JavaScript篇
一.JavaScript介绍 前端三剑客之JavaScript,简称js,可能是这三个里面最难的一个了.很早以前,市面上流通着三种js版本,为了统一,ECMA(欧洲计算机制造协会)定义了规范的版本, ...
随机推荐
- 转载:Web安全X-FRAME-OPTIONS 出现两个或多个的原因
转载:https://blog.csdn.net/Teemo_2016/article/details/82051523 在配置文件中配置了 <httpProtocol> < ...
- 使用postman创建Marketing Cloud的Contact
首先在Marketing Cloud的UI上创建一个contact: 观察Chrome开发者工具network标签页里的HTTP请求: https://jerry.gcdemo.hybris.com/ ...
- Windows Ping | Tracert 's Bat 脚本并行测试
系统:windows 需求:测试多台PC输出三个网站并行ping.tracert结果,多台PC同时进行. 说明:以www.baidu.com.www.sina.com.cn.www.tencent.c ...
- 网络编程基础之TCP学习(二)编程案例
TCP网络编程流程如下: 实现功能:服务器端与客户端成功通讯后返回get! 服务器端程序 #include <netdb.h> #include <sys/socket.h> ...
- K8S搭建过程随笔_系统初始化
组件 Kubernetes 1.14.2 Docker 18.09.6-ce Etcd 3.3.13 Flanneld 0.11.0 基础环境设置 192.168.11.188 k8s-master ...
- sklearn--模型的评价
sklearn.metrics 1.MSE(均方误差)和RMSE(均方根误差),以及score() lr.score(test_x,test_y)#越接近1越好,负的很差 from sklearn.m ...
- H2数据库启动提示8082端口被占用
The Web Console server could not be started. Possible cause: another server is already running at ht ...
- remmina连接xfce桌面的centos7
vnc无法连到linux server,但ssh可以的解决方法 原文引自:https://blog.csdn.net/h00ahaha/article/details/84440449 今天用vn ...
- vue 后退不刷新,前进刷新 keep-alive
最近在开发中遇到了这样的一个问题: A.B.C三个页面,有如下这样的场景: (1)从页面A离开进入B或C的时候,缓存A页面的数据,并且返回到A后,能保持A页面的跳转前职位 (2)离开B进入C的时候,缓 ...
- ZOJ - 4114 Flipping Game
ZOJ - 4114 Flipping Game 题目大意:给出两个串s,t,n个灯泡的序列,1代表开着,0代表关着,一共操作k轮,每轮改变m个灯泡的状态,问最终能把s串变成t串的方案数. 坤神题解. ...