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查漏补缺的更多相关文章

  1. js查漏补缺【未完】

    1.初始 1.小补. 1.在文本字符串中使用反斜杠对代码行进行换行. document.write("Hello \ World!"); 2.document.write docu ...

  2. js基础查漏补缺(更新)

    js基础查漏补缺: 1. NaN != NaN: 复制数组可以用slice: 数组的sort.reverse等方法都会改变自身: Map是一组键值对的结构,Set是key的集合: Array.Map. ...

  3. CSS基础面试题,快来查漏补缺

    本文大部分问题来源:50道CSS基础面试题(附答案),外加一些面经. 我对问题进行了分类整理,并给了自己的回答.大部分知识点都有专题链接(来源于本博客相关文章),用于自己前端CSS部分的查漏补缺.虽作 ...

  4. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  5. Entity Framework 查漏补缺 (一)

    明确EF建立的数据库和对象之间的关系 EF也是一种ORM技术框架, 将对象模型和关系型数据库的数据结构对应起来,开发人员不在利用sql去操作数据相关结构和数据.以下是EF建立的数据库和对象之间关系 关 ...

  6. 2019Java查漏补缺(一)

    看到一个总结的知识: 感觉很全面的知识梳理,自己在github上总结了计算机网络笔记就很累了,猜想思维导图的方式一定花费了作者很大的精力,特共享出来.原文:java基础思维导图 自己学习的查漏补缺如下 ...

  7. 20165223 week1测试查漏补缺

    week1查漏补缺 经过第一周的学习后,在蓝墨云班课上做了一套31道题的小测试,下面是对测试题中遇到的错误的分析和总结: 一.背记题 不属于Java后继技术的是? Ptyhon Java后继技术有? ...

  8. 今天開始慢下脚步,開始ios技术知识的查漏补缺。

    从2014.6.30 開始工作算起. 如今已经是第416天了.不止不觉.时间过的真快. 通过对之前工作的总结.发现,你的知识面.会决定你面对问题时的态度.过程和结果. 简单来讲.知识面拓展了,你才干有 ...

  9. Mysql查漏补缺笔记

    目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...

随机推荐

  1. mysql 数据库的设计三范式

    三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物 ...

  2. Centos7.2(linux)minimal install之后需要的操作

    minimal install之后,很多命令都不存在,例如ifconfig, wget等等 首先,需要先配置网络,保证机器可以连上互联纲 ip addr可以查看网卡的基本信息 一般默认就只有两个,一个 ...

  3. oracle 锁表

    select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = ...

  4. P2495 [SDOI2011]消耗战

    思路 虚树上DP 虚树相当于一颗包含了所有询问的关键点信息的树,包含的所有点只有询问点和它们的LCA,所以点数是\(2k\)级别的,这样的话复杂度就是\(O(\sum k)\),复杂度就对了 虚树重点 ...

  5. 2019 年 Spread.NET 产品路线图(Roadmap)

    前言 | 问题背景 2018年结束了,12月是Spread.NET的重要月份.我们发布了Spread.NET 12,我们期待着 2019 年令人兴奋的新年,这是Windows Forms开发人员有史以 ...

  6. 好玩图像pil处理

    pil库的学习总结 #__author:'lwq'#date: 2018/11/15 from PIL import Image,ImageFilter,ImageDraw,ImageFont ### ...

  7. zabbix回顾

    1.zabbix能收集哪些信息? 磁盘空间,磁盘IO,cpu负载,内存使用情况,开机时间,网卡的网络流量,进程数等 2.zabbix支持哪些通讯方式? agent:通过专用的代理程序进行监控,是mas ...

  8. 配置IPMI

    服务器电源管理 查看服务器电源状态 ipmitool chassis power status 关闭服务器电源 ipmitool chassis power off 打开服务器电源 ipmitool ...

  9. 20165306 Exp0 Kali安装 Week1

    20165306 Exp0 Kali安装 Week1 实验要求 Kali 下载 安装 网络 共享 软件源 步骤一.下载Kali 根据网址https://www.kali.org/ 下载kali 点击 ...

  10. 在Rancher 1.6上部署Traefik负载均衡器

    一.给Traefik主机打标签 01-给即将部署Traefik的主机节点打上标签.jpg 02-主机打完traefik_lb标签后的状态.jpg 二.在Rancher应用商店中部署Traefik 应用 ...