JavaScript高程第一章—第三章总结

1.1 一个完整的js实现包括啥?

ECMAscript

DOM(文档对象模型)

BOM(浏览器对象模型)

1.2 ECMAScript的宿主环境有?

宿主环境:提供基本的ECMAScript实现,也提供语言的扩展,便于语言和环境之间对接交互。

宿主环境有:Web浏览器,node,flash,webview

1.3 为何要DOM?

确保代码可以跨平台使用,

1.4 DOM各级的区别?

1级映射文档结构

2级事件和支持CSS

3级加载和保存文档的方法

1.5 BOM的作用是?

提供了独立于内容而与浏览器窗口进行交互的对象,提供了访问窗口对象的一些方法。最强大的功能就是提供了一个访问HTML页面的入口—document对象,使我们可以通过这个入口来使用DOM的强大功能,说的简单一点就是让js可以控制页面以外的部分。

2.1 带src属性的script元素与其闭合标签嵌入JS代码有何问题?

只会下载并执行外部脚本文件,function sayHi(){alert(“Hi!”)被忽略,不执行。

2.2 如何避免包含太多JS代码页面的空白?

js引用放在body页面后面,如例子加粗部分。

2.3 为何最好一个页面只包含一个延迟脚本?

若出现了两个延迟脚本,HTML5规范要求脚本按照出现的先后顺序执行,因此第一个先于第二个执行,而这两个脚本会先于DOMContentLoaded事件执行,在现实当中,延迟脚本并不一定按照顺序执行,也不一定在DOMContentLoaded事件触发前执行,因此最好只包含一个延迟脚本。

2.4 为何建议异步脚本最好不要在加载期间修改DOM?

因为页面会先于脚本加载页面,容易出问题

2.5 noscript元素中的内容何时出现?

浏览器不支持脚本或者脚本被禁用

3.1 为何要用严格模式?

避免不确定行为和不安全的操作。

3.2 省略分号有何隐患?

若将分号省略,那么b的值就为4,而不是3了。容易带来错误和降低性能(解析器需要推测)

3.3 在控制语句中使用代码块的好处?

让编码意图清晰和降低修改代码出错的几率。

3.4 为何说JS的变量是松散类型的?

松散类型:可以用来保存任何类型的数据。

因为变量仅是保存值的占位符,变量可以看做存储数据的容器。

3.5 js的数据类型有?

基本类型:undefined,null,Number,Boolean,String

引用类型Object

3.6 typeof的作用?

检测变量的数据类型

3.7 typeof的返回值有?

undefined,number,boolean,string,object,function

3.8 引入undefined的目的是?

区分空对象指针与未初始化的变量

3.9 对未声明变量只能执行的操作是?

typeof检测其类型

3.10 为何建议显示初始化变量?

便于使用typeof区分变量是未声明还是未初始化

3.11 null值表示什么?

空对象指针

3.12 为何把变量显示初始化为undefined没必要,而把对象初始化为nul却又必要?

体现nul作为空指针的惯例,进一步区分nu和undefined

3.13 Boolean的字面值区分大小写吗?

区分,所以False,与false不一样

3.14 0.1+0.2不等于0.3?

浮点数的精度是17位,存在舍入误差

3.15如何理解NaN?

表示一个本来要返回数值的操作数未返回数值的情况

3.16JS中除0会阻止代码的执行吗?

不会,因为它返回了NaN

3.17对象调用isNaN()函数有何不同?

先调用valueOf()进行判断,视情况再调用toString()进行判断

3.18数值转型函数Number与parselnt/parseFloat有何区别?

前者针对任何类型,后两者只针对字符串

3.19parselnt和parseFloat有何区别?

一是parseFloat不忽略第一个小数点;二是parseFloat始终忽略前导0;三是parseFloat只解析十进制;

3.20怎样避免parselnt错误解析字符串?

任何情况下明确基数。

3.21Number与parselnt解析空字符串时有何区别?

前者返回0,后者返回NaN

3.22转换为字符串的方法及区别?

toString()通过指定基数,改变输出的值,nu和undefined没有toString方法()String()将任何类型的值转换成字符串

3.23如何改变数值的toString()方法的返回值?

传入指定基数

3.24为何说Object是所有实例的基础?

Object所具有的任何属性和方法也存在于具体对象中。

3.25递增/减前置和后置的区别?

前置时变量在语句执行前改变,后置则是在语句执行后改变

3.26系统怎样对非数值应用位操作符进行自动处理?

使用Number()函数把该值转换为数值

3.27如何理解短路操作?

第一个数决定结果,则不会操作第二个数

3.28比较数值与字符串时是如何转换的?

字符串转换为数值

3.29任何操作数与NaN的比较结果是?

flase

3.30相等和全等的区别?

“==”只要求值相等;“===”要求值和类型都相等

全等不需要转换,性能更好

3.31为何NaN不等于NaN?

逻辑上设计如此

3.32 逗号操作符的赋值规则是?

返回表达式最后一项

例:

Var num = {5、1、2、0}; //num的值为0

由于0是表达式中的最后一项,因此num的值就是0。

3.33 为何for..in循环输出的属性名不可预测?

Js对象属性没有顺序

3.34 为何不建议大量使用with语句?

因为它会去检查大括号内的每个变量是否是这个对象的属性或者方法,使得JavaScript的执行时间增加。性能下降,调试困难

3.35 为何switch语句比较时不发生转换?

使用的是全等比较(例如:字符串“10”不等于数值10)

3.36 为何位于return语句后的代码不会执行?

函数执行return后会立即停止并退出,所以警示框永远不会被调用。

3.37 JS函数中通过什么获取参数数组?

arguments对象

用法:

(1)利用argument[i]访问函数参数

(2)  利用argument返回参数得个数(argument.length)

3.38 为何JS中的函数不能实现重载?

如例子中声明了两个同名函数,但从结果看,调用的是第二个函数,第一个函数被第二个函数覆盖了。原因在于在创建第二个函数的时候,实际上它覆盖了引用第一个函数的变量add。

无法做到参数类型和数量的不同


补充:

JavaScript:基于对象的多范式编程语言

对象:

  所谓对象就是键值对的集合

  对象是将属性和方法封装起来(数据集,功能集)

注:    对象用名词来表示的

      方法一般是些动词

      属性值则往往是一些形容词

类:

  没有类,一切都是基于对象的,依靠的是一套原型系统,原型本身实际上也是对象。

封装:

  1.相关的数据(用于存储属性)

  2.基于这些数据所能做的事(所能调用的方法)

js三大特点(面向对象)

聚合:也叫组合,是指我们将几个现有对象合并成一个新对象的过程。

继承:为了实现复用(把别人东西拿来用,成为自己的东西)

多态:b对象继承了上一级对象a的所有方法。这两个对象都实现了‘talk’等方法。代码中有一个叫c的变量, 即使不知道它是a对象的还是b对象的,也依然可以直接调用该对象的‘talk’方法,不会影响代码的正常工作。不同对象通过相同的方法调用来实现各自行为的能力。

控制台输出undefined:因为控制台在执行我们输入的表达式之后,总是要输出该表达式的运行结果。

undefined与null的区别:

undefined访问不存在的变量时,初始化之前的值为undefined

null通常是没有值或空值

区别:null的变量通常被认为是已经定义的,只不过不代表任何东西。

函数:

    匿名函数的使用

    回调函数

    自调函数

    内嵌函数(在函数内部定义的函数)

    以函数为返回值的函数

    能重定义自身的函数

    闭包

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345