js查漏补缺
js中:
1.对空(Null)、未定义(Undefined)、Symbol 、函数(Function) 都是数据类型(js不像java中,声明了变量会有默认值,在js中只声明变量而没有赋值的时候,类型就是Undefined类型,并不会有默认值。js中NUll和Undefined也是不一样的)
2.js语言是大小写敏感的语言
3.js拥有动态类型,即var 声明了一个变量后可以赋值各种不同的数据类型的值
4.js对象是键值对的容器。和java对象一样拥有属性和方法,不过方法的定义 是作为一个函数定义存储在对象属性中,最终表现为键值对的形式(methodName : function() { code lines });调用方法时,不加()以字符串方式原样输出,加了()才是以函数运算结果的方式输出
5.js可以直接向未声明的变量赋值,该变量将被自动作为 window 的一个属性,是全局对象的可配置属性,可以删除
6.变量作用域问题:
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。(同5)函数参数只在函数内起作用,是局部变量。在每个代码块(不是function的方法体中)中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。
总结起来就是:在 ES6 之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。并没有像java那样的块级作用域的概念的。且变量是可以重置的(重复声明赋值)
es6之后新增let关键字 :let 声明的变量只在 let 命令所在的代码块内有效,且同一个作用域里,不能重置变量,不会被变量提升,需要先申明再使用(这个和java是很像的了)
7.函数function的返回值是可选的,且不用向java那样声明返回值得类型
8.js中的字符串既可以用双引号也可以用单引号,且可以直接利用索引位置来访问字符串中的每个字符。(不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用)
9.==表示值相等。===表示绝对等于,值和类型都相等;
10.!= 表示不等于。!==表示不绝对等于,只要值和类型有一个不相等或者都不相等都返回true
11.for/in 语句循环遍历对象的属性,for (x in person) // x 为属性名,只能用person[x]取值方式取值,而不能用person.x因为x是变量
12.null和undefined的值相等,但是类型不想等;null==undefined 返回true,null===undefined 返回false
13.js中使用typeof 操作符来检测变量的数据类型。
14.注意:
NaN 的数据类型是 number
数组(Array)的数据类型是 object
日期(Date)的数据类型为 object
null 的数据类型是 object
未定义变量的数据类型为 undefined
function 的数据类型是 function
15.js中类型转换使用全局方法:Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。js中存在自动类型转换,这会导致输出的不是期望的值
16.js变量提升:
变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部,但是初始化的不会。所以变量可以在使用后声明,也就是变量可以先使用再声明。
17.switch 语句会使用恒等计算符(===)进行比较:
18.在 s中,分号是可选的 ,JavaScript 默认是在代码的最后一行自动结束。
19.js不支持使用名字来索引数组,只允许使用数字索引。
20. js 中 this 不是固定不变的,它会随着执行环境的改变而改变:
在对象的方法中,this 表示该方法所属的对象。
如果单独使用,this 表示全局对象。
在函数function中,this 表示全局对象。
在函数function中,在严格模式下,this 是未定义的(undefined)。
在事件中,this 表示接收事件的元素。
类似 call() 和 apply() 方法可以将 this 引用到任何对象。
21.JSON 是用于存储和传输数据的格式。JSON 格式在语法上与创建 JavaScript 对象代码是相同的(都是键值对的集合);JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本;
文本可以被任何编程语言读取及作为数据格式传递。
22.void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值
-----------------------------------------------------函数部分---------------------------------------------------------------------
23.函数表达式可以存储在变量中,在函数表达式存储在变量后,变量也可作为一个函数使用;
24.函数同样可以通过内置的 JavaScript 函数构造器(Function())定义 ,但是一般js中应该避免使用new的方式创建对象
25.函数也可以提升,即先使用后声明,但是使用表达式定义函数时无法提升。
26.函数可以自调用,(函数表达式)();
27.函数是一个对象,有自己内部的参数和方法
28.新增箭头函数(函数无非就是参数,函数体和返回值。抓住这三点很好理解)
29.JavaScript 函数定义显式参数时没有指定数据类型
30.ES5 中如果函数在调用时未提供隐式参数,参数会默认设置为: undefined
31.JavaScript 函数有个内置的对象 arguments 对象,argument 对象包含了函数调用的参数数组。
32.值传递和引用传递和java是一样的
33.js闭包我理解不了
34.事件传播机制:
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件
35.区分开DOM对象和BOM对象(浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。)
---------------------------------------------对象---------------------------------------
36.JavaScript 类
JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype,而不是基于类的。
37.js中数组元素是对象,所有可以存放很多类型。这个和java是不一样的
38.原型prototype是JavaScript全局构造函数。它可以构建新Javascript对象的属性和方法
js查漏补缺的更多相关文章
- js查漏补缺【未完】
1.初始 1.小补. 1.在文本字符串中使用反斜杠对代码行进行换行. document.write("Hello \ World!"); 2.document.write docu ...
- js基础查漏补缺(更新)
js基础查漏补缺: 1. NaN != NaN: 复制数组可以用slice: 数组的sort.reverse等方法都会改变自身: Map是一组键值对的结构,Set是key的集合: Array.Map. ...
- CSS基础面试题,快来查漏补缺
本文大部分问题来源:50道CSS基础面试题(附答案),外加一些面经. 我对问题进行了分类整理,并给了自己的回答.大部分知识点都有专题链接(来源于本博客相关文章),用于自己前端CSS部分的查漏补缺.虽作 ...
- 《CSS权威指南》基础复习+查漏补缺
前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...
- Entity Framework 查漏补缺 (一)
明确EF建立的数据库和对象之间的关系 EF也是一种ORM技术框架, 将对象模型和关系型数据库的数据结构对应起来,开发人员不在利用sql去操作数据相关结构和数据.以下是EF建立的数据库和对象之间关系 关 ...
- 2019Java查漏补缺(一)
看到一个总结的知识: 感觉很全面的知识梳理,自己在github上总结了计算机网络笔记就很累了,猜想思维导图的方式一定花费了作者很大的精力,特共享出来.原文:java基础思维导图 自己学习的查漏补缺如下 ...
- 20165223 week1测试查漏补缺
week1查漏补缺 经过第一周的学习后,在蓝墨云班课上做了一套31道题的小测试,下面是对测试题中遇到的错误的分析和总结: 一.背记题 不属于Java后继技术的是? Ptyhon Java后继技术有? ...
- 今天開始慢下脚步,開始ios技术知识的查漏补缺。
从2014.6.30 開始工作算起. 如今已经是第416天了.不止不觉.时间过的真快. 通过对之前工作的总结.发现,你的知识面.会决定你面对问题时的态度.过程和结果. 简单来讲.知识面拓展了,你才干有 ...
- Mysql查漏补缺笔记
目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...
随机推荐
- 【题解】Luogu P2081 [NOI2012]迷失游乐园
原题传送门 这是当时冬令营课上讲的题,咕咕咕到了现在 如果这题没有环套树的话,就很套路了 需要两个数组up[i]和down[i],down[i]表示从i点第一步向下走的期望距离,up[i]表示从i点第 ...
- 单例模式-懒汉式的一次多线程Debug
单例模式要要点就是一个类只会存在一个实例,要想达到这种效果,最重要的就是将构造方法设置为私有,然后通过static的方法来获取对象. 上述设计并不线程安全,因为在lazySingleton = new ...
- 【Django基本命令002】
在mac或者window的终端直接输入这些命令(不是Python的shell中) 一.创建Django项目之前必须先激活 具体方法可以参考Python机器语言学习博客 二.开始新建项目 1.新建一个d ...
- Excel导出采用mvc的ExcelResult继承遇到的问题
ExcelResult继承:ViewResult(只支持excel版本2003及兼容2003的版本)通过视图模板生成excel /// <summary> /// ms-excel视图 / ...
- android开发_view和view属性
一.view视图的宽度和高度属性,属性值:固定和浮动两种状态 1属性为固定值 <View android:layout_width="30dp" android:layout ...
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
转自https://blog.csdn.net/lovesomnus/article/details/49512777 在maven中央库中查找ojdbc,发现最新的版本是10.2.0.4.0,然后在 ...
- arch安装以及配置记录
设置ip和网关 ifconfig eth0 10.82.16.233 netmask 255.255.255.0 route add default gw 10.82.16.1 或者 ip addr ...
- Ubuntu 14.04 安装 sysrepo v0.7.5
参考: Tentative gNMI support with sysrepo protobuf-c/protobuf-c Ubuntu 14.04 安装 sysrepo v0.7.5 安装依赖: s ...
- Struts 2 概念介绍
概念引入 Web层通常使用Servlet+jsp,现在使用Struts2来处理访问服务器请求 Service层 目前使用JavaBean Dao层目前使用Hibernate Spring是一个大的管家 ...
- 分页查询最好加排序(order by)
昨天,与外部化系统对接时,发现有一个数据一直咩有集成到,双方各自排查了自己系统的代码,都觉得逻辑非常简单,无法就是一个分页查询而已. 问题就出在这个分页查询上. 为了说明当时问题发生的情景,我模拟了一 ...