w3school学习 - javascript入门

在浏览一下客户端代码时,经常会遇到javascript脚本,系统的学习一下对以后更深入了解客户端很有好处。

1. 应用场景

改进设计

验证表单

检测浏览器

创建cookies等

2. 入门实例

这里的document是 js中的 的html DOM对象

http://www.w3school.com.cn/jsref/dom_obj_document.asp

1. 改变html内容

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

2. 改变html样式

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

3. 验证输入

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

3. 语法

1. 标签

<script> 和 </script> 之间的代码行包含了 JavaScript

2. 函数与事件

一般情况下,函数与事件紧密相关。

我们需要在某个事件发生时执行代码,比如当用户点击按钮时。

如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。

3. js文件的独立与引入

通常的做法是把函数放入 <head> 部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。

外部 JavaScript 文件的文件扩展名是 .js。

<!DOCTYPE html>
<html>
<body>
<script src="myScript.js"></script>
</body>
</html>

4. js输出

document.write() 向文档输出写内容。

如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖

5. 变量 var声明,常用的时数字与字符串

动态类型,同一变量,即可以是数字,也可以是字符串

6. js对象: json

7. js数组

8. 创建js对象

person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

9. 函数

function myFunction(var1,var2)
{
这里是要执行的代码
}

10. 运算符,if-else, switch, for, while, break, continue语法,类似于c语言

11. try... throw... catch...语法实例

<script>
function myFunction()
{
try
  {
  var x=document.getElementById("demo").value;
  if(x=="")    throw "empty";
  if(isNaN(x)) throw "not a number";
  if(x>10)     throw "too high";
  if(x<5)      throw "too low";
  }
catch(err)
  {
  var y=document.getElementById("mess");
  y.innerHTML="Error: " + err + ".";
  }
}
</script>

4. JavaScript 表单验证

JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。

被 JavaScript 验证的这些典型的表单数据有:

1. 用户是否已填写表单中的必填项目?

2. 用户输入的邮件地址是否合法?

3. 用户是否已输入合法的日期?

4. 用户是否在数据域 (numeric field) 中输入了文本?

如:

function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
  {alert(alerttxt);return false}
else {return true}
}
}

http://www.w3school.com.cn/js/js_form_validation.asp

5. js是如何操作html DOM元素的?

html的DOM结构

1. 通过 id 找到 HTML 元素

var x=document.getElementById("intro");

3. 通过标签名找到 HTML 元素

var x=document.getElementById("main");
var y=x.getElementsByTagName("p");

3. 如需改变 HTML 元素的内容,语法:

document.getElementById(id).innerHTML=new HTML

6. js DOM事件

1. 当用户点击鼠标时

<h1 onclick="this.innerHTML=‘谢谢!‘">请点击该文本</h1>

button也是一样的

2. 当网页已加载时

onload 和 onunload 事件

onload 和 onunload 事件会在用户进入或离开页面时被触发。

onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

onload 和 onunload 事件可用于处理 cookie。

<body onload="checkCookies()">

3. 当图像已加载时

4. 当鼠标移动到元素上时

onmouseover 和 onmouseout 事件

<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>

5. 当输入字段被改变时

onchange 事件

<input type="text" id="fname" onchange="upperCase()">

6. 当提交 HTML 表单时

onclick 事件

7. 当用户触发按键时

onmousedown、onmouseup 以及 onclick 事件

<div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:green;color:#ffffff;width:90px;height:20px;padding:40px;font-size:12px;">请点击这里</div>

9. DOM节点操作

增删改查

var para=document.createElement("p");
var node=document.createTextNode("这是新段落。");
para.appendChild(node);

查:

var element=document.getElementById("div1");

删:

parent.removeChild(child);

7. js对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

对象只是带有属性和方法的特殊数据类型。

js内建对象的一些特性:

1. js数字

数字属性和方法

属性:

MAX VALUE

MIN VALUE

NEGATIVE INFINITIVE

POSITIVE INFINITIVE

NaN

prototype

constructor

方法:

toExponential()

toFixed()

toPrecision()

toString()

valueOf()

2. js字符串

属性

长度 txt.length

样式 small(), big(), bold(), italics()       blink(), fixed(),

fontcolor("ddd"), fontsize(16)

toUpperCase(), toLowerCase()

sub(), sup()

link("http://lll....")

查找子串位置:

str.indexOf("Hello")

匹配特定字符:

str.match("world")

字符串替换:

str.replace(/Microsoft/,"W3School")

3. js 日期

Date()

返回格式:

Thu Feb 26 2015 17:55:22 GMT+0800 (CST)

getTime()

getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。

setFullYear()

如何使用 setFullYear() 设置具体的日期。

toUTCString()

如何使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。

getDay()

返回星期几,数字 0-7,从星期日开始

4. js数组

var mycars=new Array("Saab","Volvo","BMW")

For...In 声明

使用 for...in 声明来循环输出数组中的元素。

合并两个数组 - concat()

如何使用 concat() 方法来合并两个数组。

用数组的元素组成字符串 - join()

如何使用 join() 方法将数组的所有元素组成一个字符串。

文字数组 - sort()

如何使用 sort() 方法从字面上对数组进行排序。

数字数组 - sort()

如何使用 sort() 方法从数值上对数组进行排序。

5. Math对象

round() 四舍五入

max(), min()

random() 返回介于0-1的随机数

floor(), ceil()

常数:

Math.E

Math.PI

Math.SQRT2

Math.SQRT1_2

Math.LN2

Math.LN10

Math.LOG2E

Math.LOG10E

6. js 正则表达式

test:

检索字符串中的指定值。返回值是 true 或 false。

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free")); 

exec:

返回值是被找到的值。如果没有发现匹配,则返回 null。

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free")); 

compile:

用于改变正则表达式的值

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

patt1.compile("d");

document.write(patt1.test("The best things in life are free"));

8. js BOM模型 browser object model

1. window 高度,宽度,document对象,表示浏览器窗口属性

方法:

open(), close(), moveTo(), resizeTo()

2. screen

screen.availWidth - 可用的屏幕宽度

screen.availHeight - 可用的屏幕高度

3. location

location.href 属性返回当前页面的 URL。

location.pathname 属性返回 URL 的路径名。

location.assign() 方法加载新的文档。

4. history

history.back() - 与在浏览器点击后退按钮相同

history.forward() - 与在浏览器中点击按钮向前相同

5. navigator

包含浏览器信息

如 appCodeName, appName, appVersion, cookieEnabled, platform, userAgent, systemLanguage等

6. 消息框

alert() 警告框

confirm() 确认、取消框

prompt() 提示框

7. 计时功能, 毫秒为单位

setTimeout()

未来的某时执行代码

clearTimeout()

取消setTimeout()

8. cookie

document.cookie

创建、存储、获取、检查cookie

实例 http://www.w3school.com.cn/tiy/t.asp?f=jseg_cookie_username

9. jQuery库

jQuery是js著名的一个库

引用 jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">

</script>

基础语法是:$(selector).action()

美元符号定义 jQuery

选择符(selector)“查询”和“查找” HTML 元素

jQuery 的 action() 执行对元素的操作

10. AJAX

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

AJAX 是一种用于创建快速动态网页的技术。

XMLHttpRequest 是 AJAX 的基础。

XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

variable=new XMLHttpRequest();

XMLHttpRequest 对象用于和服务器交换数据。

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法

1. GET请求

xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

2. POST请求

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");

XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:

xmlhttp.open("GET","ajax_test.asp",true);

3. 响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

responseText 属性返回字符串形式的响应:

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性

4. XHR事件

onreadystatechange 的描述

http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_onreadystatechange.asp

属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
status
200: "OK"

404: 未找到页面

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

时间: 2024-10-12 02:21:03

w3school学习 - javascript入门的相关文章

javascript入门视频第一天 小案例制作 零基础开始学习javascript

JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此,小强老师给大家写了这篇入门的javascript文章.从零基础开始学习js,使大家入门更简单,希望大家喜欢.JavaScript是一种脚本语言. 也是我们web网络中最为流行一种脚本语言.脚本语言:     1.不是独立存在的.需要依附.js就是依附在浏览器中.     2.脚本语言也是语言,也有

JavaScript入门学习书籍的阶段选择

对于许多想学习 JavaScript 的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习 JavaScript 的理由.在 JavaScript 方面,自己不是什么专家,也不是什么高手,但自己一路走来,JavaScript 从迷茫到认识,对于JavaScript 书籍的认识或许还有些借鉴价值.入门推荐首选书籍:<JavaScript DOM 编程艺术>当初读了不下 4 遍,书内容简单,易学,上手快,编程思想严谨.好的入门书,对你未来的编程都会有着深远的影响

JavaScript入门--慕课网学习笔记

 JAVASCRIPT-(慕课网)入门篇 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要成对出现,并把JavaScript代码写在<script></script>之间. <script type="text/javascript">表示在<script></script>之间的是文本类型(text),ja

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习JavaScript数据结构与算法第3版》

最近几年学前端的人会越来越多,再加上前端的范围越来越广,从前端发展为全栈,数据结构和算法的功底要求势必将越来越高. <数据结构与算法图解>电子书及代码是数据结构与算法的入门指南,不局限于某种特定语言,略过复杂的数学公式,用通俗易懂的方式针对编程初学者介绍数据结构与算法的基本概念,培养编程逻辑.主要内容包括:为什么要了解数据结构与算法,大O表示法及其代码优化利用,栈.队列等的合理使用,等等. <算法图解>电子书非常的体贴,看起来也很快,用图来解释算法是非常好的想法,可作为学习数据结构

关于学习javascript的一些建议

有被朋友或同事问到过,要如何学习前端技术,他们大多是已经掌握其他语言的程序员,或是计算机相关专业的在校生. 每次被问到,总要组织回忆一番,本着DRY原则,我还是根据我学习javascript(下文都简称JS)的经历,总结一些建议出来吧. 以后如果荣幸的被问起,直接发链接给他/她就可以了. 注: 以下内容仅根据本人的学习经验写成,绝非唯一方法, 仅供参考. 且由于本人水平有限,下面说的只是如何从不会JS,到简单入门原生JS,勉强算是领进门的一步. 至于更高级的话题, 请参考其他更专业的文章. 1.

如何系统地学习JavaScript

在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证.浮动广告等,所以那时候JavaScript并没有受到重视.自从AJAX开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来.现在,很多公司会招专门的JavaScript工程师,通常JavaScript是WEB前端开发的必备技能.简单介绍了JavaScriptr的好处,并不代表大家就会去学习甚至把它学好,兴趣是很关键的,我认为兴趣是最好的老师,它

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

如何正确学习JavaScript

学习时长:6-8周学习前提:中学水平,无需编程经验 更新(2014-1-7) 在Reddit上创建了一个学习小组January 2014, “Learn JavaScript” Study Group on Reddit 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:WebStorm 第一个项目-动态问答应用 5-6周(正则表达式,Window对象,事件,jQue

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递