js笔记

以前的js学习笔记,放在网上随时查阅,也随时补充吧。

1. 语句

JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。

document.getElementById("demo").innerHTML = "你好 Dolly";

分号用于分隔 JavaScript 语句。可以在文本字符串中使用反斜杠对代码行进行换行。

document.write("你好 \
世界!");

2. 注释

  • 单行注释以 // 开头。
  • 多行注释以 / 开始,以 / 结尾。

使用 JavaScript 脚本在页面中输出一个字符串,将 JavaScript 脚本编写在 HTML 注释中,如果浏览器支持 JavaScript 将输出此字符串,如果不支持将不输出此字符串,代码如下:

<script>
<!--
document.write("您的浏览器支持JavaScript脚本!");
//-->
</script>

3. js变量

  • 变量必须以字母开头
  • 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
  • 变量名称对大小写敏感(y 和 Y 是不同的变量)

JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值:

var carname;//值为空
var carname="Volvo";
var lastname="Doe", age=30, job="carpenter";

4.数据类型

字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:

var x;               // x 为 undefined
var x = 5;           // 现在 x 为数字
var x = "John";      // 现在 x 为字符串

JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。
布尔(逻辑)只能有两个值:true 或 false。
创建数组3种方式:

var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

var cars=new Array("Saab","Volvo","BMW");

var cars=["Saab","Volvo","BMW"];

创建对象:

var person={firstname:"John", lastname:"Doe", id:5566};

寻址方式
name=person.lastname;
name=person["lastname"];

Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。

当声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String;

5. 对象

对象含有属性和方法

<script>
var person = {
    firstName: "John",
    lastName : "Doe",
    id : 5566,
    fullName : function() 
    {
       return this.firstName + " " + this.lastName;
    }
};
document.getElementById("demo").innerHTML = person.fullName();
</script>

访问属性:

  • person.lastName;
  • person["lastName"];

访问方法:
name=person.fullName();
如果你要访问 person 对象的 fullName 属性,它将作为一个定义函数的字符串返回:

person.fullName
function() { return this.firstName + " " + this.lastName; }

6. 函数

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
    alert("Hello World!");
}
</script>
</head>
 
<body>
<button onclick="myFunction()">Try it</button>
</body>
</html>

带参数的函数

<button onclick="myFunction('Bob','Builder')">点击这里</button>
<script>
function myFunction(name,job)
{
    alert("Welcome " + name + ", the " + job);
}
</script>

带返回值

function myFunction(a,b)
{
    return a*b;
}
 
document.getElementById("demo").innerHTML=myFunction(4,3);

7. 作用域

局部变量全局变量内容略

8. 输出

  • 使用 window.alert() 弹出警告框。
  • 使用 document.write() 方法将内容写到 HTML 文档中。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台。
<button onclick="myFunction()">点我</button>
<script>
function myFunction() {
       document.write(Date());
}
</script>

<script>
window.alert(5 + 6);

document.getElementById("demo").innerHTML = "段落已修改。";

document.write(Date());

console.log(c);
</script>

9. DOM

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。

var x=document.getElementById("intro");
<div id="main">
<p> DOM 是非常有用的。</p>
<p>该实例展示了  <b>getElementsByTagName</b> 方法</p>
</div>
<script>
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
document.write('id="main"元素中的第一个段落为:' + y[0].innerHTML);
</script>

DOM HTML

改变HTML输出
document.write(Date());

改变HTML内容
document.getElementById("p1").innerHTML="新文本!";
var element=document.getElementById("header");
element.innerHTML="新标题";

改变HTML属性
<img id="image" src="smiley.gif">
document.getElementById("image").src="landscape.jpg";

DOM CSS

改变css
<p id="p2">Hello World!</p>
document.getElementById("p2").style.color="blue";

触发实践改变
<button type="button" 
onclick="document.getElementById('id1').style.color='red'">
点我!</button>

DOM事件

调用js
<h1 onclick="changetext()">点击文本!</h1>

js触发事件
<button id="myBtn">点这里</button>
<script>
document.getElementById("myBtn").onclick=function(){displayDate()};
function displayDate(){
    document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
  • onload 和 onunload 事件会在用户进入或离开页面时被触发。
  • onchange 事件常结合对输入字段的验证来使用。(例如当你离开输入框后,函数将被触发)
  • onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。
  • onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。

DOM EventListener

element.addEventListener(event, function, useCapture);

第一个参数是事件的类型 (如 "click" 或 "mousedown").

第二个参数是事件触发后调用的函数。

第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。

addEventListener() 方法允许向同一个元素添加多个事件,且不会覆盖已存在的事件:

<button id="myBtn">点我</button>
<script>
var x = document.getElementById("myBtn");
x.addEventListener("click", myFunction);
x.addEventListener("click", someOtherFunction);
function myFunction() {
    alert ("Hello World!")
}
function someOtherFunction() {
    alert ("函数已执行!")
}
</script>
<p id="demo"></p>
<script>
var p1 = 5;
var p2 = 7;
document.getElementById("myBtn").addEventListener("click", function() {
    myFunction(p1, p2);
});
function myFunction(a, b) {
    var result = a * b;
    document.getElementById("demo").innerHTML = result;
}
</script>

事件传递有两种方式:冒泡与捕获。
冒泡 中,内部元素的事件会先被触发,然后再触发外部元素。
捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件

DOM 元素

创建新的html元素

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
<script>
var para=document.createElement("p");
var node=document.createTextNode("这是一个新段落。");
para.appendChild(node);
var element=document.getElementById("div1");
element.appendChild(para);
</script>

删除已有的html元素

<div id="div1">
    <p id="p1">这是一个段落。</p>
    <p id="p2">这是另一个段落。</p>
</div>
<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>
1 + 6 =
快来做第一个评论的人吧~