恶补web之六:javascript知识(1)
javascript(下称js)是一种轻量级编程语言,它可以插入html页面然后由浏览器执行.
document.write("<h1>...</h1>"),只可以在html输出中使用document.write,如果在文档加载后使用该方法,会覆盖整个文档.
类似于document.xxx的方法是在html DOM中定义的.DOM(文档对象模型)是用以访问html元素的正式w3c标准.
js和java是完全2种不同的语言,ECMA-262是js标准的官方名称
html中的脚本必须位于<script>和</script>之间,脚本可被放置在html页面的<body>和<head>部分中.
也可以将js代码放到外部文件中,文件扩展名为.js:<script src="xxx.js"></script>
如果从js访问某个html元素,可以使用document.getElementById(id)方法.
通常在每条执行语句结尾添加分号(可选),so可以在一行编写多条语句.
js代码是js语句的序列,浏览器会按照编写顺序来执行每条语句.
js函数是将语句组合在块中的典型例子:
function foo()
{
document.getElementById("demo").innerHTML="hello";
}
js对大小写敏感.js会忽略多余的空格.
js单行注释以//开头;多行注释以/*开始,*/结尾
js变量可存放值和表达式;变量名必须以字母或$和_开头,变量大小写敏感.
js中创建变量通常称为声明变量,用var关键字声明变量:var i;var j=10;
js拥有动态类型,意味着相同变量可做用于不同类型.
创建js数组:
var ary=new Array();
ary[0]="111"
或者:
var ary = ["aaa","bbb"];
js对象由花括号分割:var obj={name:"zhang",id:100};有两种寻址方式:
obj.name 或者 obj["name"]
可以通过将变量设置为null来清空变量:var v=null
当声明新变量时,可以使用关键字new:
var name=new String;
var x=new Number;
var ary=new Array;
var obj = new Object;
js中所有事物都是对象:字符串,数字,数组,日期等.js中对象是拥有属性和方法的数据.
调用函数时,可以向其传递值:foo(arg1,arg2); foo的声明如下:
function foo(v1,v2){}
可以使用return语句返回指定的值:return 100;
var x=foo(100);
js函数内部用var声明的是局部变量.作用域在函数内部.函数外部声明的变量是全局变量,作用域是整个网页.
js变量生命期从声明开始,局部变量在函数返回后被删除,全局变量在页面关闭后被删除.
如果吧值赋给未声明的变量,该变量将被作为全局变量声明,即使它在函数内部执行: undefined_var=100;
js中数字与字符串相加结果为字符串
===全等于运算符(值和类型都相同)
js中的if结构和C基本相同,switch结构也和C类似
js的for结构:for(var i=0;i<100;i++) {...}
for的另一种格式for(x in ary) {...},注意x是在ary中的每个index.
while(){}和do{}while()和C类似
continue语句只能在循环中使用
break不带标签引用只能用在循环或switch中;通过标签引用,break可以跳出任何js代码块:
list:
{
....
break list;
....
}
当出错时,js引擎会停止,然后生成一个错误信息,称之为js抛出一个错误.try语句允许我们定义在执行时进行错误测试的代码块.catch捕获当try发生的错误:
try{
}
catch(err)
{
}
throw允许我们创建自定义错误,或称之为抛出异常.
js可用来在数据被发送往服务器前对html表单输入进行验证.
当网页被加载时,浏览器会创建页面的文档对象模型DOM,DOM被构造为对象的树.
查找html元素:
1.通过id查找:var x= document.getElementById("id")
2.通过标签名查找:
var x=document.getElementById("main")
var y=x.getElementsByTagName("p")
3.通过类名查找
修改html内容最简单的方法是使用innerHTML属性:document.getElementById(id).innerHTML=xxx
使用document.getElementById(id).attribute=xxx修改html元素的属性.
<!DOCTYPE html>
<html>
<body>
<img id="image" src="smiley.gif">
<script>
document.getElementById("image").src="landscape.jpg";
</script>
</body>
</html>
js可以通过DOM改变html元素的样式:
document.getElementById(id).style.property=xxx
html DOM是js有能力对html事件做出反应
使用js向html元素分配事件:
document.getElementById("id").onclick=function() {...}
onload和onunload会在用户进入或离开页面时被触发.
onchange当字段内容发生改变时调用.
onmouseover和onmouseout在用户鼠标移入或移出元素时触发
当点击鼠标按钮时触发onmousedown,当释放按钮时触发onmouseup事件,最后完成鼠标点击时触发onclick事件.
恶补web之六:javascript知识(1)的更多相关文章
- 恶补web之六:javascript知识(2)
若要向html添加新元素,必须首先创建该元素,然后向一个已存在的元素追加该元素 <div id="div1"> <p id="p1">这 ...
- 恶补web之一:html学习(1)
发现以前欠下的web知识太多鸟,只有重头开始好好学吧,恶补第一站就是html知识啦! html指的是超文本标记语言,它不是编程语言,而是一种标记语言;标记语言是一套标记标签(markup tag),h ...
- 恶补web之二:css知识(3)
css有3种定位机制:普通流,浮动和绝对定位. 除非专门指定,否则所有框都在普通流中定位,即普通流中的元素位置由元素在(x)html中的位置决定. 通过使用position属性,可以选择4种不同类型的 ...
- 恶补web之二:css知识(2)
css字体属性定义文本的字体系列,大小,加粗,风格和变形等. css中包含两种字体系列:通用字体系列和特定字体系列. font-family属性定义文本的字体系列: body {font-family ...
- 恶补web之七:html DOM知识
html DOM定义了访问和操作html文档的标准;dom是w3c的标准,dom定义了访问html和xml文档的标准: w3c文档对象模型(dom)是中立平台和语言的接口,它允许程序和脚本动态访问和更 ...
- 恶补web之二:css知识(1)
css指层叠样式表(Cascading Style Sheets) 样式定义如何显示html元素,样式通常存储在样式表里.把样式添加到html4.0中,是为了解决内容与表现分离的问题.外部样式 ...
- 恶补web之八:jQuery(3)
jquery和其他js框架.jQuery使用$作为jQuery的简写,但是还有很多js框架,比如: MooTools,Backbone,Sammy,Cappuccino,Knockout,JavaSc ...
- 恶补web之八:jQuery(1)
jquery是一个js库,极大的简化了js编程.jquery是一个写的更少,但做的更多的轻量级js库. jquery位于一个js文件中,其中包含了所有jquery函数,可以用如下标记把jquery添加 ...
- 恶补web之五:dhtml学习
dhtml是一种使html页面具有动态特性的艺术.对于多数人来说dhtml意味着html(html DOM),样式表和javascript的组合. dhtml不是w3c标准.dhtml指动态html, ...
随机推荐
- 安卓自定义View实现图片上传进度显示(仿QQ)
首先看下我们想要实现的效果如下图(qq聊天中发送图片时的效果): 再看下图我们实现的效果: 实现原理很简单,首先我们上传图片时需要一个进度值progress,这个不管是自己写的上传的方法还是使用第三方 ...
- 1026. Table Tennis (30)
题目如下: A table tennis club has N tables available to the public. The tables are numbered from 1 to N. ...
- mysql 字符集查看 设定
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8 character_set_server = utf8 修 ...
- 剑指Offer——全排列递归思路
剑指Offer--全排列递归思路 前言 全排列,full permutation, 可以利用二叉树的遍历实现.二叉树的递归遍历,前中后都简洁的难以置信,但是都有一个共同特点,那就是一个函数里包含两次自 ...
- (一一七)基本文件操作 -SDWebImage清除缓存 -文件夹的大小计算
在iOS的App沙盒中,Documents和Library/Preferences都会被备份到iCloud,因此只适合放置一些记录文件,例如plist.数据库文件.缓存一般放置到Library/Cac ...
- 【VSTS 日志 15/11/18】 – 插件应用市场,RM,包管理器等
[小编]从今天开始,我将在这个博客上连载Visual Studio Team Service的定期更新.VSTS是Team Foundation Server 的在线版本,微软每3周会对这个服务进行更 ...
- mysql进阶(二十四)防御SQL注入的方法总结
防御SQL注入的方法总结 这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下. SQL注入是一类危害极大的攻击形式.虽然危害很大,但是防御却 ...
- UE4 射线拾取&三维画线
虽然有人建议UE4使用C++创建VR项目,能避免一些坑爹的错误,但是我用C++创建,竟然问题更多,还存在创建不了的情况,也不知道是不是我的操作问题,快疯了. 于是我还是选择了蓝图创建VR项目,但是.. ...
- 《C语言点滴》书评
说起C语言方面的书,你最先想到的是哪一本?不论图书本身是好是坏,反正我想到的是谭浩强的<C程序设计>--它已然是一部"圣经"了.那么,为什么赵岩老师还要写一本<C ...
- cocos2D v3.4 在TileMap中开启高清显示
在Tiled中制作一幅地图,用的图片砖块分辨率为32x32. iOS设备为iPhone 4s. 在未打开高清屏支持的cocos2d v2.x版本中,运行log显示480x320.遂启用高清屏支持: [ ...