javaScript要点总结

在 JavaScript 中, 对象和函数同样也是变量。

变量在函数内声明,变量为局部作用域。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

变量在函数外定义,即为全局变量。
全局变量有 全局作用域: 网页中所有脚本和函数均可使用。 

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

局部变量在函数执行完毕后销毁。
全局变量在页面关闭后销毁。

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。
var x=document.getElementById("intro");

通过标签名查找 HTML 元素
例子,查找 id="main" 的元素,然后查找 id="main" 元素中的所有 <p> 元素:
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");

通过类名找到 HTML 元素
例子,通过 getElementsByClassName 函数来查找 class="intro" 的元素:
var x=document.getElementsByClassName("intro");

JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型。

Webkit是浏览器引擎,包括html渲染和js解析功能。

NaN,即非数值(Not a Number),是一个特殊的数值,用于表示一个本来要返回数值的操作数未返回数值的情况。

数值转换,Number(),可以用于任何数据类型。

parseInt(),将字符串转换成数值。

parseFloat(),将字符串转换成数值。

转换为字符串,toString(),数值、布尔值、对象和字符串都有一个toString()方法,null和undefined值没有这个方法。

Object是一组数据和功能的集合;通过new关键字创建;
var  o  =  new Object();

js 判断字符串中是否包含某个字符串,可以有三种方法;
String对象的方法,indexOf(),search(),match();一般用第一种;
var str = "123";
console.log(str.indexOf("3") != -1 );  // true

========
 

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。

不要在文档加载完成之后使用 document.write()。这会覆盖该文档。

修改 HTML 内容的最简单的方法是使用 innerHTML 属性。

改变<p>元素的内容:
<p id="p1">Hello World!</p>
<script>
document.getElementById("p1").innerHTML="New text!";
</script>

改变<h1> 元素的内容:
<h1 id="header">Old Header</h1>
<script>
var element=document.getElementById("header");
element.innerHTML="New Header";
</script>

改变 HTML 属性
document.getElementById(id).attribute=new value

改变<img> 元素的 src 属性:
<img id="image" src="smiley.gif">
<script>
document.getElementById("image").src="landscape.jpg";
</script>

改变HTML元素的样式    
document.getElementById(id).style.property=new style    

改变 <p> 元素的样式:
<p id="p2">Hello World!</p> 
<script> 
document.getElementById("p2").style.color="blue"; 
</script> 

改变id="id1" 的 HTML 元素的样式,当用户点击按钮时
<h1 id="id1">My Heading 1</h1> 
<button type="button" 
οnclick="document.getElementById('id1').style.color='red'"> 
Click Me!</button> 

HTML 事件:
当用户点击鼠标时
当网页已加载时
当图像已加载时
当鼠标移动到元素上时
当输入字段被改变时
当提交 HTML 表单时
当用户触发按键时

在 <h1> 元素上点击时,改变其内容:
<h1 οnclick="this.innerHTML='Ooops!'">点击文本!</h1> 

从事件处理器调用一个函数:
<script> 
function changetext(id) 

id.innerHTML="Ooops!"; 

</script> 
<body> 
<h1 οnclick="changetext(this)">Click on this text!</h1> 
</body> 

向 button 元素分配 onclick 事件:
<button οnclick="displayDate()">点我</button>

允许使用 JavaScript 来向 HTML 元素分配事件:
向 button 元素分配 onclick 事件:
document.getElementById("myBtn").οnclick=function(){displayDate()}; 

onload 和 onunload 事件会在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onload 和 onunload 事件可用于处理 cookie。
<body οnlοad="checkCookies()">

onchange 事件常结合对输入字段的验证来使用。
当用户改变输入字段的内容时,调用 upperCase() 函数:
<input type="text" id="fname" οnchange="upperCase()">

onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,当完成鼠标点击时,会触发 onclick 事件。

addEventListener() 方法用于向指定元素添加事件句柄。
addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄。
你可以向一个元素添加多个事件句柄。

事件冒泡或事件捕获
事件传递有两种方式:冒泡与捕获。
事件传递定义了元素事件触发的顺序。 如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?
在冒泡中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。
在捕获中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。
addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型。
 

========

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数。
JavaScript 允许自定义对象。

JavaScript 提供多个内建对象,如 String、Date、Array等。
对象只是带有属性和方法的特殊数据类型。

属性是与对象相关的值。
访问对象属性的语法:objectName.propertyName

使用 String 对象的 length 属性来获得字符串的长度:
var message="Hello World!";
var x=message.length;


方法是能够在对象上执行的动作。
可以通过以下语法来调用方法:
objectName.methodName()
使用 String 对象的 toUpperCase() 方法来将文本转换为大写:
var message="Hello world!";
var x=message.toUpperCase();


通过 JavaScript,能够定义并创建自己的对象。
创建新对象有两种不同的方法:
定义并创建对象的实例
使用函数来定义对象,然后创建新的对象实例

创建对象的一个新实例,并向其添加四个属性:
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

替代语法(使用对象 literals):
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};


使用对象构造器
使用函数来构造对象:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}


创建 JavaScript 对象实例
一旦有了对象构造器,就可以创建新的对象实例,
var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");


可以通过为对象赋值,向已有对象添加新属性:
假设 personObj 已存在 - 可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

x=person.firstname;


把方法添加到 JavaScript 对象
方法只不过是附加在对象上的函数。
在构造器函数内部定义对象的方法:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
changeName() 函数 name 的值赋给 person 的 lastname 属性。
现在可以试一下:
myMother.changeName("Ballmer");


JavaScript 类
JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype,而不是基于类的。

JavaScript for...in 循环
JavaScript for...in 语句循环遍历对象的属性。
语法
for (对象中的变量)
  {
  要执行的代码
  }
for...in 循环中的代码块将针对每个属性执行一次。

循环遍历对象的属性:
var person={fname:"Bill",lname:"Gates",age:56};

for (x in person)
  {
  txt=txt + person[x];
  }


========

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值