美文网首页
javascript基础

javascript基础

作者: 原上的小木屋 | 来源:发表于2019-02-27 01:16 被阅读0次

    typeof 1的结果是什么?

    • number

    typeof "hello"的结果是什么?

    • string

    typeof true的结果是什么?

    • boolean

    typeof undefined的结果是什么?

    • undefined

    typeof null的结果是什么?

    • object

    typeof []的结果是什么?

    • object

    typeof {}的结果是什么?

    • object

    typeof function(){}的结果是什么?

    • function

    简单介绍 JavaScript的发展历史。

    目的:浏览器需要一种可以嵌入网页的脚本语言,- 用来控制浏览器行为
    诞生:1995年5月,Brendan Eich只用了10天,就设计完成了这种语言的第一版。

    1. 语法:
    • 基本语法:借鉴C语言和Java语言。
    • 数据结构:借鉴Java语言,包括将值分成原始值和对象两大类。
    • 函数的用法:借鉴Scheme语言和Awk语言,将函数当作第一等公民,并引入闭包。
    • 原型继承模型:借鉴Self语言(Smalltalk的一种变种)。
    • 正则表达式:借鉴Perl语言。
    • 字符串和数组处理:借鉴Python语言。
    1. 版本
    • 1997年7月,ECMAScript 1.0发布。
    • 1998年6月,ECMAScript 2.0版发布。
    • 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
    • 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
    • 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发(即废除了这个版本),将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
    • 2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。TC39的总体考虑是,ECMAScript 5与ECMAScript 3基本保持兼容,较大的语法修正和新功能加入,将由JavaScript.next完成。当时,JavaScript.next指的是ECMAScript 6。第六版发布以后,将指ECMAScript 7。TC39预计,ECMAScript 5会在2013年的年中成为JavaScript开发的主流标准,并在此后五年中一直保持这个位置。
    • 2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。到了2012年底,所有主要浏览器都支持ECMAScript 5.1版的全部功能。
    • 2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
    • 2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
    • 2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”。这是因为TC39委员会计划,以后每年发布一个ECMAScirpt的版本,下一个版本在2016年发布,称为“ECMAScript 2016”。
      除了ECMAScript的版本,很长一段时间中,Netscape公司(以及继承它的Mozilla基金会)在内部依然使用自己的版本号。这导致了JavaScript有自己不同于ECMAScript的版本号。1996年3月,Navigator 2.0内置了JavaScript 1.0。JavaScript 1.1版对应ECMAScript 1.0,但是直到JavaScript 1.4版才完全兼容ECMAScript 1.0。JavaScript 1.5版完全兼容ECMAScript 3.0。目前的JavaScript 1.8版完全兼容ECMAScript 5。

    样式、JS 在 HTML 中如何放置?

    css和js的正确摆放均是为了提高页面的加载效率。

    1. css的放置位置
    • css应该放置在head中,用style标签引入。这是因为,页面渲染时,只有相应CSSOM Tree完成后,才开始之后的布局(layout)并将页面显示,如果将css放置在尾部,前面DOM tree加载过久(内容过多,或者请求资源超时)的话,可能导致白屏时间变长。
    1. js的放置位置
    • 除了一些在页面执行前必须加载的js以外,大多数js应该放置在body标签内的尾部。这主要是因为js会阻塞其后内容的加载和呈现,导致白屏。此外,js的执行过程可能作用于dom tree内的元素,如果放置在前面会报错。
    • 为了避免js阻塞其后内容,可以根据具体需求使用参数async或defer,使JS异步加载。
    • async,加载和渲染后续元素的过程将和js文件的加载与执行并行进行,async的js元素下载完后立刻执行,不同js的先后执行顺序很可能与页面中的出现次序不同。
    • defer,加载后续文档元素的过程将和js的加载并行进行,但js的执行要等到所有元素解析完成之后,DOMContentLoaded事件触发之前完成。

    如何判断一个变量是否是数字、字符串、布尔、函数?

    • 运用typeof运算符来判断

    JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?

    • ES6之前定义了5种数据类型分别是
    1. number
    2. string
    3. boolean
    4. null
    5. undifined
    6. object
    • ES6又加上了symbol这个数据类型
    • 通常,我们将数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了
    • 而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。

    相关文章

      网友评论

          本文标题:javascript基础

          本文链接:https://www.haomeiwen.com/subject/ourbkqtx.html