js基础细节
js细节 1.所有的全局变量都是window的属性.
语句 var a=1;
等价于 window.a=1;
用 "变量名称" in window 来验证全局变量是否声明. 2.所有的变量声明都在范围作用域的顶部. alert("a" in window);
var a; 尽管a的声明在 alert 之后,alert弹出的依然是true;
这是因为javascript引擎首先会扫描所有的全局变量声明,
然后将这些变量声明移动到顶部,最终的代码效果是这样的:
var a;
alert("a" in window); 3.函数声明 和 变量声明 在进入执行上下文就完成了. 变量声明:
var a; 函数声明:
function functionName(arg1,arg2){
//函数体
} 变量赋值:
var a;--变量声明
a=1;--变量赋值 函数表达式:(匿名函数赋值给变量)======>函数表达式 相当于 变量赋值
var functionName=function(arg1,arg2){
//函数体
}
拆解:
var functionName;
functionName=function(arg1,arg2){
//函数体
} 优先级:函数声明 会覆盖 变量声明,但不会覆盖 变量赋值 4.this 变量:永远指向函数运行时所在的对象,
而不是函数被创建时所在的对象。
如果处在匿名函数中、或者不处于任何对象中,
this 都指向宿主的根对象(在浏览器里面就是 window) javascript中还用 call() 和 apply() 来调用函数,
再记住下面这两句话:
如果是call()、apply()、with(),指定的this是谁,就是谁 !
普通的函数调用,函数被谁调用,this就是谁。
js基础细节的更多相关文章
- 前端开发概述+JS基础细节知识点
一 前端开发概述 html页面:html css javascript 拿到UI设计图纸:切图-->html+css静态布局-->用JS写一写动态效果-->ajax和后台进行交互,把 ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- 前端工程师面试问题归纳(一、问答类html/css/js基础)
一.参考资源 1.前端面试题及答案整理(一) 2.2017年前端面试题整理汇总100题 3.2018最新Web前端经典面试试题及答案 4.[javascript常见面试题]常见前端面试题及答案 5.W ...
- JS基础-全方面掌握继承
前言 上篇文章详细解析了原型.原型链的相关知识点,这篇文章讲的是和原型链有密切关联的继承,它是前端基础中很重要的一个知识点,它对于代码复用来说非常有用,本篇将详细解析JS中的各种继承方式和优缺点进行, ...
- js 基础篇(点击事件轮播图的实现)
轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...
- js 基础
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...
- js基础练习二之简易日历
今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- JS基础(超级简单)
1 JS基础(超级简单) 1.1 数据类型 1.1.1 基本类型: 1) Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2) ...
随机推荐
- 测试你是否和LTC水平一样高[HDU1407]
测试你是否和LTC水平一样高Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- BZOJ2158 : Crash 的旅行计划
A类数据: $n,q\leq1000$ 修改:$O(1)$直接改 查询:$O(n)$BFS B类数据: $n,q\leq100000$,保证是一条链 用线段树维护区间最大前缀.后缀和 修改:$O(\l ...
- java中流转化为Object可序列化
一.PO实体类 public class buisPO{ /** * 业务数据 */ private Bolb buisData; public Blob getBusiData() { return ...
- Codeforces Round #207 (Div. 1) A. Knight Tournament(STL)
脑子又卡了...来一发set的,STL真心不熟. #include <stdio.h> #include <string.h> #include <iostream> ...
- asp.net mvc4 HTTP Error 403.14
asp.net mvc4项目部署到II&上时,出现HTTP Error 403.14 - Forbidden - The Web server is configured to not lis ...
- ajax教程完整版
第 1 页 Ajax 简介 Ajax 由 HTML.JavaScript™ 技术.DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序.本文的作者是 ...
- 优化UITableViewCell高度计算的那些事
优化UITableViewCell高度计算的那些事 我是前言 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化 ...
- 在线阅读android源代码
这两天一直在寻找android系统的源代码,但是直到一个小时之前,一直未能如愿.但是,令人欣慰的是,现在找到了. 网上有不少帖子介绍如何下载android源代码,包括在linux系统,windows系 ...
- ckedit 文本编辑器
Ckeditor是一个功能非常强大的富文本编辑器,博客园有使用此编辑器,其功能完全可以与MS的Word媲美. 用起来也非常方便.下面是本人总结的安装步骤: 第一步,从http://ckeditor.c ...
- 熟悉Eclipse开发工具
一.熟悉Eclipse 1.Eclipse是由IBM公司投资4000万美元开发的集成开发工具.它基于Java语言编写,并且是开放源代码的.可扩展的,也是目前最流行的Java集成开发工具之一.另外,IB ...