一."use strict"
JavaScript严格模式,即在严格环境下运行JavaScript
它不是一条语句,而是字面表达量。
为什么使用严格模式?为了消除代码中的不合理、怪异之处:
1.提高代码运行的安全性
2.提高编译器效率,增加运行速率
3.为未来的新版JavaScript做铺垫
限制如下:
不允许使用未声明变量
不允许删除变量或者对象
不允许删除函数
不允许变量名重名
不允许使用八进制
不允许使用转义字符
不允许对只读属性赋值
不允许对一个使用getter方法读取的属性赋值
不允许删除一个不允许删除的属性
变量名不能使用“eval”字符串
变量名不能使用"argument"字符串
不允许使用以下这种语法
with(Math){x=cos(2)}
不允许调用作用域eval()创建的变量
禁止this关键字指向全局变量
二.类、对象、实例
Myclass myclass=new Myclass()
上面这条语句中,new在堆中创建了一个对象,这个对象是Myclass类的实例,而myclass是该对象的引用
类,是一个模子,确定对象的属性和方法。对象是类的实例表现,类是对象的类型。
属性:对象具有的特征
方法:对象的行为
eg:
public class Cat
{
String name;
int month;
public class run()
{
System.out.print("小猫快跑");
}
public class run(String name)
{
System.out.print(name+"快跑");
}
}
public class Cat
{
public static void main(String args[])
{
Cat mimi=new Cat
mimi.run()
mimi.name="咪咪"
mimi.run(mimi.name)
}
}
三.eval()方法与document.wirte()方法
eval()方法可以计算字符串,并执行其中的javacript代码
语法 eval(String)
返回值,通过计算String得到的值
<script type ="text/javascript">
eval("x=10,y=10;doucunment.wirte(x*y)")
ducument.write(eval("2+2"))
var x=10
document.write(eval("x+10"))
</script>
输出:
100
4
20
document.wirte方法
直接在文件流中写入字符串,一旦文档已经关闭,那么document.write()方法就会重新运用document.open()打开新的文档流并写入,此时原文档会被清空,已渲染的页面被覆盖,浏览器重构DOM并渲染新页面
<body>
<h1>first</h1>
<script>
document.write('<p>second</p>');
</script>
<h2>third</h2>
</body>
页面显示结果
first
second
third
四.浏览器工作流程
用户输入一个网址后,浏览器的工作流程:
DNS解析→建立TCP连接→发起HTTP请求→接受服务器响应,得到html代码
然后在互联网的某一台服务器上请求到了html文档,并下载该文档的相关资源(css图,文件,js文件),之后浏览器调动自己手下的一个部门:渲染引擎,把页面绘制出来,然后让js引擎来解释javascript代码。
五.W3C标准
1.结构化标准(html)
2.表现标准(css)
3.行为标准(ECMAScript)
六.Html、Css、JavaScript之间的关系
对于一个网页,HTML定义网页的结构,CSS描述网页的样子,JavaScript定义网页的行为
1.Html(hyper text markup language),是用来描述网页的语言,起框架作用
2.Css(Cascading Style Sheets),用来定义如何显示HTML元素,语法为selector{property:value}(选择符{属性:}),起形式作用,设定网页的表现样式
3.JavaScript,JavaScript是一种脚本直译语言,其源代码在发往客户端运行之前不需经过编译,它的解释器为javascript引擎,是浏览器的一部分,即Javascript是由客户端的浏览器执行的,它起行为作用,控制网页的行为。
如何把三者联系在一起?如果一个html文档是这样写的:
<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional //EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transtional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>网页标题</title>
<link rel ="stylesheet" type="text/css" href="./mycss.css" />
<script type="text/javascript" href="./myjs.js"></script>
</head>
<body>
<p>段落</p>
</body>
</html>
向浏览器表明遵守W3C标准XHTML1.0过渡版本规范(文件类型声明),请用这个标准解析,所采用编码为UTF-8,描述我的摸样的样式表是我同级的mycss.css文件,与我有关的javascript代码在我同级的myjs.js文件中。
请始终向文档添加<!DOCTYPE>声明,这样浏览器才能获知文件类型
声明必须在HTML文档的第一行,位于html标签之前 声明不是HTML标签,它指示web浏览器关于页面使用哪个html版本进行编写的指令http-equiv属性提供了content属性的信息/值在http头,可用于模拟响应一个http头
1.content-type 规定文字的字符编码,eg:
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
2.default-style 规定要使用的预定义的样式
<meta http-equiv="defualt-style",content="the documents preferred stylesheet">
注释:content属性的值必须匹配到同一文档的link元素上的title属性的值,或者必须匹配同一文档中的一个 style元素上的title属性的值
3.refresh 定义文档自动刷新的时间间隔
<meta http-equiv="refresh" conten="300" >
注释:refresh应该谨慎使用,它会使页面变得不受用户控制。
xmlns属性
在XHTML中,xmlns是必须的,在HTML中,xlmns是无效的
xlmsn规定文档的xml命名空间