×

JS

JS定义

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES6。

为什么学习 JavaScript?

JavaScript web 开发人员必须学习的 3 门语言中的一门:

  • HTML 定义了网页的内容

  • CSS 描述了网页的布局

  • JavaScript 网页的行为

本教程是关于 JavaScript 及介绍 JavaScript 如何与 HTML 和 CSS 一起工作。

基本特点编辑

JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

是一种解释性脚本语言(代码不进行预编译)。

主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。

可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

可以实现web页面的人机交互。

日常用途编辑

嵌入动态文本于HTML页面。

对浏览器事件做出响应。

读写HTML元素。

在数据被提交到服务器之前验证数据。

检测访客的浏览器信息。

控制cookies,包括创建和修改等。

基于Node.js技术进行服务器端编程。

特性编辑

JavaScript脚本语言具有以下特点:

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。

不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。

而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。

编程编辑

JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){},其中,catch()中会传入错误信息。

console.log("a");//这是正确的
console.log("b");//这是正确的
console.logg("c");//这是错误的,并且到这里会停下来
console.log("d");//这是正确的
console.log("e");//这是正确的
 
/*解决办法*/
try{console.log("a");}catch(e){}//这是正确的
try{console.log("b");}catch(e){}//这是正确的
try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d");}catch(e){}//这是正确的
try{console.log("e");}catch(e){}//这是正确的

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部分多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

注释://被称作行注释,/* */中的内容会被注释。

JavaScript:写入 HTML 输出

实例

document.write("<h1>This is a heading</h1>");
document.write("<p>This is a paragraph</p>");

提示:您只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。

JavaScript:对事件作出反应

实例

<button type="button" onclick="alert('Welcome!')">点击这里</button>

alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便。

onclick 事件只是您即将在本教程中学到的众多事件之一。

JavaScript:改变 HTML 内容

使用 JavaScript 来处理 HTML 内容是非常强大的功能。

实例

x=document.getElementById("demo")  //查找元素
x.innerHTML="Hello JavaScript";    //改变内容

您会经常看到 document.getElementByID("some id")。这个方法是 HTML DOM 中定义的。

DOM(文档对象模型)是用以访问 HTML 元素的正式 W3C 标准。

您将在本教程的多个章节中学到有关 HTML DOM 的知识。

JavaScript:改变 HTML 图像

本例会动态地改变 HTML <image> 的来源 (src):

The Light bulb

点击灯泡就可以打开或关闭这盏灯

JavaScript 能够改变任意 HTML 元素的大多数属性,而不仅仅是图片。

JavaScript:改变 HTML 样式

改变 HTML 元素的样式,属于改变 HTML 属性的变种。

实例

x=document.getElementById("demo")  //找到元素
x.style.color="#ff0000";           //改变样式

JavaScript:验证输入

JavaScript 常用于验证用户的输入。

实例

if isNaN(x) {alert("Not Numeric")};

关于"JS"的文章

  • 理解JS中getter和setter的应用

    Js&JQuery Posted by 天空 2020.07.02 views: 331 评论:0

    getter和setter存在于大多数面向对象的编程语言里,包括JavaScript。借助于它们以安全的方式来访问对象的属性。使用getter可以访问属性值,而setter可以修改属性值。本文中,我们会介绍如何在JavaScript中创建g...

    Tags: JS

  • document.layers用于判断是否为NETSPACE浏览器

    Js&JQuery Posted by andy001 2020.04.21 views: 436 评论:0

    document.layers用于判断是否为NETSPACE浏览器。document.layers是Netscape4.x专有的属性,是一个代表所有由储如<div><layer>等定位了的元素的数组通常也是用<div>...

    Tags: JSdocument.layers

  • 在javascript判断两个字符串是否相等

    Js&JQuery Posted by andy001 2020.03.28 views: 1240 评论:0

    在javascript判断两个字符串是否相等,可以使用相等运算符:==(等同)运算符,或者===(恒等)运算符来判断。“==”和“===”的区别“==”表示“等同”,会在进行相等比较之前会进行必要值的类型转换。简单来说,就是先把值转换为一样的类型再进行相等比...

    Tags: JS字符串

  • JavaScript中的匿名方法即匿名函数是没有函数名称的函数

    Js&JQuery Posted by andy001 2020.03.26 views: 1297 评论:0

    方法(method)是通过对象调用的javascript函数。也就是说,方法也是函数,只是比较特殊的函数。JavaScript中的匿名方法即匿名函数是没有函数名称的函数。JavaScript中匿名函数的使用:一、在Javascript定义一个函数一般有如下三种...

    Tags: JSweb前端开发

  • 介绍五种在javascript里判断变量是不是数组的方法

    Javascript学习 Posted by Web前端之家 2020.02.27 views: 852 评论:0

    已经有1个月没出门了,为了生活,只能申请在家里上班,难受啊,闲余之时还得继续学习。来点干货吧,介绍下介绍五种在javascript里判断变量是不是数组的方法,大家拿走不谢。方案一:使用instanceof运算...

    Tags: JS数组arry

  • 你知道平时js里的单引号和双引号的含义吗?

    Js&JQuery Posted by andy001 2020.02.03 views: 2447 评论:0

    你知道平时js里的单引号和双引号的含义吗?JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的...

    Tags: JS单引号双引号

  • 了解Javascript中的内置函数:Date.now()

    Js&JQuery Posted by andy001 2020.01.02 views: 4428 评论:0

    Date.now()是javascript中的内置函数,它返回自1970年1月1日00:00:00UTC以来经过的毫秒数。因为now()是Date对象的静态方法,所以它将始终用作date.now()。语法:var A = Dat...

    Tags: JSdata.now()

  • 来玩玩“身份证号码”验证

    Js&JQuery Posted by 天空 2019.08.05 views: 2968 评论:0

    身份证号码有效性验证,介绍下几个函数。function isIDCard(idcard) {    idcard = idcard.toUpperCase(); //...

    Tags: 身份证验证JS函数

  • Google Web前端大神教你如何优化Javascript性能

    性能优化 Posted by Web前端之家 2019.07.16 views: 4302 评论:0

    关于性能优化的文章已经非常多了,可能大家都认为说来说去,就那么几点而已;其实不然,让我们来听听GoogleWeb前端大神如何来分析Web前端开发的性能优化。高层级的实用指南这对Web开发人员来说意味着什么?意味着解析(Parse)和编译(Compile)不再...

    Tags: JSweb前端开发性能优化

  • 前端面试题:几个JS题目的输出结果是什么?

    Js&JQuery Posted by andyjiang 2019.04.30 views: 5768 评论:0

    来考考大家:几个JS题目得输出结果是什么?验证下自己得基础知识吧!题目一:a、b、c分别输出什么?function fun(n,o) {     console.log(o) ...

    Tags: JS面试题

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2020 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.6.4 Valyria