Javascript(一)
- 格式:ppt
- 大小:1.52 MB
- 文档页数:69
JavaScript基础⼊门教程(⼀)本系列教程的说明 本教程说⽩了可以说是我⾃⼰学习JavaScript的笔记,主要内容参考⾃《JavaScript权威指南》,部分内容可能来⾃互联⽹,本系列教程假设学者之前学过c或者其它的编程语⾔,所以⼀些基本for、if等语句的⽤法并不讲解。
javascript简介 JavaScript简称js,最初由⽹景(现在的Mozilla)公司创建,由于商标冲突原因,其标准版本命名为ECMAScript,但是⼀般⼈们还是叫JavaScript,只在谈标准的时候说到ECMAScript这个名字。
值得注意的是JavaScript与java没有任何关系,就像雷峰塔(神话中镇压⽩娘⼦的塔)和雷锋。
此外js(JavaScript)和jsp(java servlet pages)也没有关系。
js的⼯作分为两部分,⼀部分属于js语⾔本⾝的特性,⽽另⼀部需要依靠宿主环境(web浏览器)才能完成。
js的词法字符书写 字符集⽅⾯,要求JavaScript的程序必须是⽤Unicode字符集编写的。
代码编写是区分⼤⼩写的,值得注意的是html是不区分⼤⼩写的(xhtml区分),⽽这个问题在css中则稍显复杂,由于要和html结合,所以css只有在选择器选择id和class时区分⼤⼩写,其他情况都不区分⼤⼩写。
Unicode转义序列,由于我们⽣活中经常⽤到ASCII之外的字符,⽐如中⽂字符等,为了避免不必要的⿇烦,JavaScript⽀持采⽤Unicode转义的⽅式来编码字符串。
⽐如在js中 'café' === 'caf\u00e9' 的结果是true。
在标识符定义⽅⾯,js⽀持使⽤下划线、美元符号(在jQuery中常⽤)、字母和数字来书写,并且数字不能开头。
虽然js强⼤到⽀持使⽤⾮英语语⾔来书写标识符,⽐如 var π=3.14 ,但是从移植性考虑,并不推荐。
什么是JavaScript?JavaScript是一种高级的、解释型的编程语言,主要用于在网页上实现交互和动态效果。
它是网页开发中最常用的脚本语言之一,也被广泛应用于服务器端开发、移动应用开发和桌面应用开发。
以下是JavaScript的一些关键概念和特点:1. 脚本语言:JavaScript是一种脚本语言,意味着它不需要编译,可以直接在运行时执行。
在网页上,JavaScript通常通过嵌入在HTML文档中的<script>标签来引入和执行。
2. 动态性:JavaScript是一种动态语言,它允许开发人员在运行时修改和操作代码。
这使得JavaScript非常灵活,可以根据不同的条件和事件来改变网页的行为和外观。
3. 客户端脚本语言:JavaScript主要用于客户端脚本编程,即在用户的浏览器上执行。
它与HTML和CSS配合使用,可以实现网页的动态交互、表单验证、动画效果等功能。
4. 强大的DOM操作:JavaScript可以通过DOM(文档对象模型)来访问和操作网页的元素和内容。
开发人员可以使用JavaScript来创建、修改、删除网页上的元素,实现动态的页面更新和交互效果。
5. 事件驱动编程:JavaScript支持事件驱动编程模型,可以响应用户的操作和其他事件。
开发人员可以通过监听和处理事件来实现交互逻辑,例如点击按钮、鼠标移动等。
6. 对象导向编程:JavaScript是一种面向对象的编程语言,它支持对象、类、继承等概念。
开发人员可以使用JavaScript创建对象,定义属性和方法,并通过继承和多态等机制来组织和管理代码。
7. 平台无关性:JavaScript在不同的操作系统和浏览器上都可以运行,具有很好的平台无关性。
这使得开发人员可以编写一次代码,然后在多个平台上运行,减少了开发和维护的工作量。
8. 第三方库和框架:JavaScript拥有丰富的第三方库和框架,可以快速构建复杂的应用程序。
如何在JavaScript中实现私有属性的写类⽅式(⼀)之前讨论过JavaScript中的写类⽅式。
但没有讨论私有的实现。
这篇看下。
我们知道JS中私有属性的实现本质就是 var + closure。
如下复制代码代码如下:function Person(n, a){// public = n;// privatevar age = a;this.getName = function(){return ;}this.getAge = function(){return age;}}测试如下,age是私有的,使⽤点操作符⽆法获取到,⽽只能使⽤getName⽅法。
复制代码代码如下:var p = new Person('jack',23);console.log(p.age); // undefinedconsole.log(p.getAge()); // 23以上没什么稀奇的,下⾯我们使⽤⼀个⼯具函数来实现。
复制代码代码如下:/*** @param {String} className* @param {Function} classImp*/function $class(className, classImp){function clazz(){if(typeof this.init == "function"){this.init.apply(this, arguments);}}classImp.call(clazz.prototype);window[className] = clazz;}写⼀个类复制代码代码如下:$class('Person', function(){// 私有属性都定义在这var age = '';this.init = function(n, a){// 共有属性挂在this上,初始化 = n;// 私有属性初始化age = a;};this.getName = function(){return ;};this.getAge = function(){return age;}});new⼀个实例对象复制代码代码如下:var p = new Person('jack',23);console.log(); // jack 共有的可使⽤点操作符获取console.log(p.age); // undefined 私有的不能通过点操作符获取console.log(p.getAge()); // 23 私有的age只能通过共有的⽅法getAge获取。
JavaScript是什么意思JavaScript⼀种直译式脚本语⾔,是⼀种动态类型、弱类型、基于原型的语⾔,内置⽀持类型。
它的解释器被称为JavaScript 引擎,为浏览器的⼀部分,⼴泛⽤于客户端的脚本语⾔,最早是在HTML(标准通⽤标记语⾔下的⼀个应⽤)⽹页上使⽤,⽤来给HTML⽹页增加动态功能。
javascript⼀种由Netscape的LiveScript发展⽽来的脚本语⾔,它提⾼与Java的兼容性。
JavaScript采⽤HTML页作为其接⼝为了使⽹页能够具有交互性,能够包含更多活跃的元素,就有必要在⽹页中嵌⼊其它的技术。
如:Javascript、VBScript、Document Object Model(⽂件⽬标模块)、Layers和 Cascading Style Sheets(CSS),这⾥主要讲Javascript。
那么Javascript是什么东东?Javascript就是适应动态⽹页制作的需要⽽诞⽣的⼀种新的编程语⾔,如今越来越⼴泛地使⽤于Internet⽹页制作上。
Javascript是由 Netscape公司开发的⼀种脚本语⾔(scripting language),或者称为描述语⾔。
在HTML基础上,使⽤Javascript可以开发交互式Web⽹页。
Javascript的出现使得⽹页和⽤户之间实现了⼀种实时性的、动态的、交互性的关系,使⽹页包含更多活跃的元素和更加精彩的内容。
运⾏⽤Javascript编写的程序需要能⽀持Javascript语⾔的浏览器。
Netscape公司 Navigator 3.0以上版本的浏览器都能⽀持 Javascript程序,微软公司 Internet Explorer 3.0以上版本的浏览器基本上⽀持Javascript。
微软公司还有⾃⼰开发的Javascript,称为JScript。
Javascript和Jscript基本上是相同的,只是在⼀些细节上有出⼊。
JavaScript 是一种常用的脚本编程语言,用于网页开发中。
在网页开发过程中,有时候我们需要获取当前打印机的名称来进行相关操作。
本文将介绍几种获取当前打印机名称的方法,以帮助开发者更好地实现相关功能。
方法一:使用浏览器内置 API navigator浏览器提供了一个内置的 API navigator,它包含有关用户代理的信息,包括当前打印机的名称。
我们可以使用对象来获取当前打印机的名称。
具体的代码如下:```javascriptvar printerName = ;(printerName);```这段代码将会输出当前打印机的名称。
需要注意的是,该方法只能在浏览器环境中使用,不适用于其他 JavaScript 运行环境。
方法二:使用第三方 JavaScript 库除了使用浏览器内置的 API 外,我们也可以使用一些第三方的 JavaScript 库来获取当前打印机的名称。
例如,可以使用这个库来实现相关功能。
该库提供了一个方法可以获取当前打印机的名称。
具体的代码如下:```javascriptvar printerName = ().find(function(printer) {return=== 'OK';}).name;(printerName);```这段代码将会输出当前打印机的名称。
使用第三方库的好处是可以提供更多的功能和兼容性,但需要注意的是要选择一个信誉良好的库来使用,以免引入安全隐患。
方法三:使用 WebRTC 技术WebRTC 是一种支持浏览器之间实时通信的开放框架,它提供了一些 API 可以获取用户设备的信息,包括当前打印机的名称。
具体的代码如下:```javascript().then(function(devices) {(function(device) {if ( === 'printer') {();}});});```这段代码将会输出当前打印机的名称。
Company name WEB 前端开发技术HTML JavaScriptCSS WEB 前端开发技术第9讲JavaScript (1)计算机科学与技术系计算机科学与技术系Web 前端开发技术主要内容掌握JavaScript 语言的基本语法理解JavaScript 语言的作用和执行方式掌握在网页中使用客户端脚本的方法Web前端开发技术9.1 JavaScript基础计算机科学与技术系JavaScript简介最初LiveScript,Netscape公司开发,弥补了HTML只能提供静态资源的缺陷,将静态网页变成动态网页。
JavaScript是一种面向对象、基于事件驱动的轻量级、解释性脚本语言,类似于C、VB,但不需要编译。
JavaScript语言特点(1)安全性(Browser无法访问本地硬盘数据/写入到数据库);(2)易用性(脚本、无严格数据类型);(3)动态交互性(JS可以直接对用户提交的信息作出回应);(4)跨平台性(支持JS的Browser)。
Web 前端开发技术9.1.1 JavaScript起步计算机科学与技术系一个实例<!--程序9-1 --><html><title>这是我的第一个JavaScript程序</title><body><script type="text/javascript">document.write("欢迎进入JavaScript学习之旅!");</script></body></html>计算机科学与技术系Web 前端开发技术9.1.1 JavaScripte 位置与运行基本语法:<script>在页面中的位置:(1)<head>;(2)<body>;(3)单独的js 文件;(4)直接在事件处理代码中。
JavaScript常⽤API合集汇总(⼀)今天这篇⽂章跟⼤家分享⼀些JavaScript常⽤的API代码,内容太多,该篇只分享DOM操作。
下篇分享:CSS操作、对象(Object对象、Array对象、Number对象、String对象、Math对象、JSON对象和Console对象)操作,值得收藏。
JavaScript常⽤API合集汇总(⼆)⼀、节点1.1 节点属性Node.nodeName //返回节点名称,只读Node.nodeType //返回节点类型的常数值,只读Node.nodeValue //返回Text或Comment节点的⽂本值,只读Node.textContent //返回当前节点和它的所有后代节点的⽂本内容,可读写Node.baseURI //返回当前⽹页的绝对路径Node.ownerDocument //返回当前节点所在的顶层⽂档对象,即documentNode.nextSibling //返回紧跟在当前节点后⾯的第⼀个兄弟节点Node.previousSibling //返回当前节点前⾯的、距离最近的⼀个兄弟节点Node.parentNode //返回当前节点的⽗节点Node.parentElement //返回当前节点的⽗Element节点Node.childNodes //返回当前节点的所有⼦节点Node.firstChild //返回当前节点的第⼀个⼦节点stChild //返回当前节点的最后⼀个⼦节点//parentNode接⼝Node.children //返回指定节点的所有Element⼦节点Node.firstElementChild //返回当前节点的第⼀个Element⼦节点stElementChild //返回当前节点的最后⼀个Element⼦节点Node.childElementCount //返回当前节点所有Element⼦节点的数⽬。
1.2 操作Node.appendChild(node) //向节点添加最后⼀个⼦节点Node.hasChildNodes() //返回布尔值,表⽰当前节点是否有⼦节点Node.cloneNode(true); // 默认为false(克隆节点), true(克隆节点及其属性,以及后代)Node.insertBefore(newNode,oldNode) // 在指定⼦节点之前插⼊新的⼦节点Node.removeChild(node) //删除节点,在要删除节点的⽗节点上操作Node.replaceChild(newChild,oldChild) //替换节点Node.contains(node) //返回⼀个布尔值,表⽰参数节点是否为当前节点的后代节点。
JavaScript进阶(⼀)JS的多线程这个系列的⽂章名为“JavaScript 进阶”,内容涉及JS中容易忽略但是很有⽤的,偏JS底层的,以及复杂项⽬中的JS的实践。
主要来源于我⼏年的开发过程中遇到的问题。
⼩弟第⼀次写博客,写的不好的地⽅请诸位斧正,觉得还有⼀些阅读价值的请帮忙分享下。
这个“JavaScript 进阶”是⼀个系列⽂章,请⼤家⿎励⿎励,我尽快更新。
另外,如果你有⽐较好的话题,也可以在下⾯评论,我们⼀起研究提⾼。
JS是多线程的吗?多线程编程相信⼤家都很熟悉,⽐如在界⾯开发中,如果⼀个事件的响应需要较长时间,那么⼀般做法就是把事件处理程序写在另外⼀个线程中,在处理过程中,在界⾯上⾯显⽰类似进度条的元素。
这样界⾯就不会卡住,并且能够显⽰任务执⾏进度。
记得刚开始做前端的时候,⽼板交代在界⾯上⾯做⼀个定时器,每秒更新⽤户的在线时间。
当时拥有Java和C++开发经验的我⾃信满满的说我加⼀个线程就可以分分钟搞定了。
所以查阅⽂档,发现setTimeout和setInterval可以很⽅便的实现该功能。
那时候我就认为这就是JS中的多线程。
setTimeout相当于启动⼀个线程,等待⼀段时间后执⾏函数,setInterval则是在另外的⼀个线程中,每隔⼀段时间执⾏函数。
这个观念在我的头脑中存在了⼀年左右,直到遇到了这样的⼀个问题。
测试⼈员发现⼀个按钮的点击响应时间较长,在响应过程中,界⾯卡住了,我检查代码发现代码中做了这样的事情。
1. $("#submit").on("click", function() {2. bigTask(); // 这个函数需要较长时间来执⾏3. })所以我想很简单啊,把这个函数放在另外的⼀个线程执⾏就好了啊,所以代码改成了这样,以为可以轻松解决问题。
但是事实上发现毫⽆⽤处,界⾯还是原来⼀样的⾏为,点击按钮之后卡住了⼏秒。
1. $("#submit").on("click", function() {2. setTimeout(function() {3. bigTask()4. }, 0)5. })这个问题我百思不得其解,最后多⽅查阅资料才明⽩了如下的内容:1. 浏览器中的JS是单线程的。
javascript知识点JavaScript(简称“JS”)是一种直译式脚本语言,是一种动态类型的、弱类型的、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML 网页增加动态功能。
JavaScript知识点包括:1、JavaScript 核心:JavaScript 是一种脚本语言,它支持面向对象的编程,也支持函数式编程,以及命令式编程等多种风格。
JavaScript 的核心包括:语法、变量、运算符、表达式、关键字、语句、注释和函数。
2、DOM(文档对象模型):DOM 将 HTML 文档分解成一系列可访问的节点,它们可以使用 JavaScript 来操作,例如添加、删除、修改和查找元素。
3、BOM(浏览器对象模型):BOM 提供了一系列的API,用于访问浏览器的特性,例如窗口、导航历史、计时器等,可以使用 JavaScript 来操作。
4、Ajax:Ajax 是一种异步的 Web 开发技术,可以使用 JavaScript 和 XMLHttpRequest 对象来访问服务器,从而实现异步数据交互和更新网页内容。
5、jQuery: jQuery 是一套前端 JavaScript 库,可以通过简单的 API 来操作 DOM,实现动画效果、事件处理、Ajax 交互等。
6、Node.js:Node.js 是一个基于 JavaScript 语言的服务端开发平台,可以使用 JavaScript 编写服务端应用程序,并且可以与浏览器端的 JavaScript 代码共享同一种 API。
7、AngularJS:AngularJS 是一个前端 JavaScript 框架,可以使用 AngularJS 快速开发 Web 应用,它拥有模块、控制器、视图、指令等概念,使得前端开发变得更加容易。
JavaScript语法基础(1)1、JavaScript是什么?1)定义:JavaScript「JS」是⼀种⾼级的、动态的、弱类型的、解释型的计算机编程脚本语⾔。
2)原理:3)组成:3⼤部分:◆ ECMAScript: JS的语法核⼼◆ DOM: Document Object Model;⽂档对象模型;提供访问和操作⽹页的⽅法和接⼝◆ BOM: Browser Object Model;浏览器对象模型;提供与浏览器交互的⽅法和接⼝4)总结:JS是⼀种专门为⽹页交互⽽设计的、简单⽽⼜复杂的脚本程序语⾔。
2、JS的发展简史是怎样的?●慢速的⽹络 + 表单提交 + 服务器验证 = 糟糕的体验;● 1995年,Netscape「⽹景公司」,LiveScript;●为了跟风,更名为了JavaScript;● "浏览器⼤战"时期,IE <=> Netscape Navigator;●由于语法和特性上没有标准化,不同公司的浏览器实现不⼀样,导致JS出现了⼀定程度的混乱;●欧洲计算机制造协会「ECMA」组织出现完成并定义了ECMA-262这样⼀种名为ECMAScript的脚本语⾔标准;● ECMAScript5「ES5」是最流⾏的版本;ECMAScript6「ES6」是最新的版本;●各浏览器⼚商基于ECMAScript的标准完成了对各⾃浏览器的标准更新,实现统⼀;●微软借助Windows的垄断性在"浏览器⼤战"中战胜⽹景。
3、JS的使⽤场景有哪些?1)HTML、CSS和JS三者的关系:2)JS的使⽤场景:最初的JS只⽤来⽀持⽹页表单数据的验证,如今的JS⼴泛使⽤于如下各种场景:◆⽹页/⽹游/页游;◆ Electron.js框架和V8「JS渲染引擎」,制作桌⾯程序;◆ React.js可以制作⼿机/移动端程序;◆ Node.js⽤来作为后端运⾏环境。
3)为什么JS⾮常值得我们学习?◆⽬前,全世界⼏乎所谓的⽹站都在使⽤JS;◆⼏乎所有现代的浏览器都直接原⽣⽀持JS;PC/⼿机/平板等⼏乎所有硬件设备也⽀持JS;◆作为Web⼯程师和Java⼯程师,如果想制作漂亮的⽹页;或者实现⾼效的动态验证,JS是必须的⼯具。
javascript面试题及答案javascript面试题及答案(一)一、假设为页面的onload事件指定了事件处理函数,如何删除该事件处理函数。
如何为一个事件指定两个或多个处理函数。
functionaddLoadEvent(func){varoldonLoad=window.onload;if(typeofwindow.onload!=function){window.onload=func;}else{window.onload=function(){oldonload();func();}}}addLoadEvent函数主要是完成如下的操作:1、把现有的window.onload事件处理函数的值存入到oldonload中。
2、如果在这个处理函数上还没有绑定任何函数,就将该函数添加给它。
3、如果在这个处理函数上已经绑定了一些函数,就把该函数追加到现有指定的末尾。
通过addLoadEvent函数,只需要调用该函数就可以进行绑定了。
二、写一个函数,返回指定的英文句子中的每个单词及其字符的起止位置,单词间使用一个空格隔开按空格拆分到数组里,取出每个元素三、构造一个自定义对象,实现对一个矩形的对象化,要求:a)描述矩形的标识(name)b)描述矩形的颜色(color)c)描述矩形的宽度(width)d)描述矩形的高度(height)e)提供获取矩形面积的方法(getArea())f)写出构造函数的完整代码g)给出调用的实例代码四、frame之间如何交换数据,frame和iframe有什么区别,iframe有哪些用途。
window.parent.frames它不同于Frame标记最大的特征即这个标记所引用的HTML文件不是与另外的HTML文件相互独立显示,而是可以直接嵌入在一个HTML文件中,与这个HTML 文件内容相互融合,成为一个整体;因为它可以多次在一个页面内显示同一内容,而不必重复写内容,所以人们形象称这种效果为“画中画”。
JavaScript中国象棋程序(1)-界⾯设计“JavaScript中国象棋程序” 这⼀系列教程将带你从头使⽤JavaScript编写⼀个中国象棋程序。
这是教程的第1节。
程序的最终效果。
这⼀系列共有9个部分:0、1、2、3、4、5、6、7、8、这⼀节我们设计图形界⾯,显⽰初始化棋局。
当点击某棋⼦时,弹窗提⽰所点击的具体棋⼦。
效果如下:1.1、棋盘表⽰中国象棋有10⾏9列,很⾃然地想到可以⽤10×9矩阵表⽰棋盘。
事实上,我们使⽤16×16矩阵来表⽰⼀个扩充了的虚拟棋盘。
如上图所⽰,灰⾊部分为真实棋盘,置于虚拟棋盘之中。
这么做可以快速判断棋⼦是否⾛出边界。
例如象沿⽥字⾛,如果⾛到真实棋盘之外的虚拟棋盘中,说明⾛法不合法。
容易想到使⽤⼆维数组表⽰16×16矩阵,这样棋盘上的⼀个位置需要两个变量表⽰。
⼀个⾛法包括起点和终点,就需要四个变量。
如果使⽤长度为256的⼀维数组表⽰,⼀个位置只需⼀个变量,这就可以减少计算量。
因此⽤⼀维数组表⽰16×16矩阵。
⼀维矩阵和⼆维矩阵之间的转换也很简单:// 将⼆维矩阵转换为⼀维矩阵function COORD_XY(x, y) {return x + (y << 4);}// 根据⼀维矩阵,获取⼆维矩阵⾏数function RANK_Y(sq) {return sq >> 4;}// 根据⼀维矩阵,获取⼆维矩阵列数function FILE_X(sq) {return sq & 15;}其中,sq & 15是通过位运算取余,与sq % 16结果相同()。
再使⽤⼀个辅助数组,标识虚拟棋盘中,哪些位置属于真实棋盘:var IN_BOARD_ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];要判断某位置是否在真实棋盘,可使⽤函数:function IN_BOARD(sq) {return IN_BOARD_[sq] != 0;}1.2、棋⼦表⽰使⽤整数表⽰棋⼦:将⼠象马车炮卒红⽅891011121314⿊⽅16171819202122棋⼦这样表⽰,可以快速判断某棋⼦属于红⽅还是⿊⽅,如下表所⽰:红⽅棋⼦⿊⽅棋⼦⼗进制⼆进制⼗进制⼆进制80000 1000160001 000090000 1001170001 0001100000 1010180001 0010110000 1011190001 0011120000 1100200001 0100130000 1101210001 0101140000 1110220001 0110可以看出:红⽅棋⼦ & 8 = 1⿊⽅棋⼦ & 16 = 11.3、字符串表⽰局⾯使⽤数组表⽰局⾯,程序处理起来很⽅便,但是再⽹上传递棋局很不⽅便。
第一天1:定义javascript是一种弱类型、动态类型、解释型的脚本语言。
弱类型:类型检查不严格,偏向于容忍隐式类型转换。
强类型:类型检查严格,偏向于不容忍隐式类型转换。
动态类型:运行的时候执行类型检查。
静态类型:编译的时候就知道每个变量的类型。
解释型:程序不需要编译,程序在运行的时候才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低,但是跨平台性好。
编译型:程序在执行之前需要一个专门的翻译过程,把程序编译为机器语言的文件,运行时直接使用编译的结果就行了。
标记语言:标记语言的存在就是用来被读取(浏览)的,而其本身是没有行为能力的,在标记语言里你会看到<和>这些尖括号,这是用来写出“层次”和”属性”的,换句话说,它是被动的。
并不具备与访问者互动的能力。
编程语言:它是具有逻辑性和行为能力,这是主动的。
说通俗一点,它是有思想的。
脚本语言:它介于标记语言和编程语言之间,脚本语言不需要编译,可以直接用,由解释器来负责解释。
2:JS历史1:Netsape发明了javascript。
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。
这是历史上第一个比较成熟的网络浏览器,轰动一时。
但是这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。
比如,网页上有一栏用户名需要填写,浏览器无法判断用户是否真的填写了,只有让服务器去判断。
如果没有填写就返回错误,要求用户重新填写。
太浪费时间和服务器资源了。
更何况在那个用调制解调器上网的年代。
2:JS之父Brendan Eich(布兰登· 艾奇)网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
当时工程师Brendan Eich就是负责开发这种新语言。
3:为什么叫JavaScript1995年Sun公司将Oak语言改名为Java,正式向市场推出。
Sun公司大肆宣传,允诺这种语言可以”一次编译,到处运行”。
很有可能成为未来市场的主宰。