一、框架
前端显示html ---- 处理问题javascript(JS) ---- CSS 配置脚本
(建筑框架) (具体实施工程) (房屋装修)
二、示例(refer:http://designiot.phodal.com/)
1. helloworld.html (HTML)
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="app.js"></script> //用JS 来处理具体的问题
</head>
<body>
<noscript>
disable Javascript
</noscript>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="app.js"></script> //用JS 来处理具体的问题
</head>
<body>
<noscript>
disable Javascript
</noscript>
</body>
</html>
2. app.js(JAVASCRIPT-JS)
document.write('hello,world');
或者是更专业一点
document.write('hello,world');
或者是更专业一点
function calc(tang,num){
return tang*num;
}
function printResult(tang,num){
document.write(calc(tang,num));/
}
printResult(3, 4)
function calc(tang,num){
return tang*num;
}
function printResult(tang,num){
document.write(calc(tang,num));/
}
printResult(3, 4)
function sin(degree){
return document.write(Math.sin(degree));//
}
sin(30);
function sin(degree){
return document.write(Math.sin(degree));//
}
sin(30);
document.write以及Math.sin是做什么用的????
修改app.js为以下内容
document.write(typeof document);
document.write(typeof Math);
document.write(typeof document);
document.write(typeof Math);
输出document以及math的类型(typeof得到类型)为 object object
object又是做什么的????
object(对象):无序属性的集合,属性可以包含基本值、函数等,还可以包含另一个对象(object)
举例子1(创建一个仅包含基本值的对象object):
store={};/声明一个对象的方法1
store.tang=4;
store.num=3;
document.write(store.tang*store.num);
store={};
/声明一个对象的方法1
举例子2(创建一个包含对象的对象):
store={};/声明一个对象的方法1
store.tang=4;
store.num=3;
document.writeln(store.tang*store.num);
var wall=new Object();声明一个对象的方法2(这个声明方法的可读性较强)
wall.store=store;
document.write(typeof wall.store);
store={};/声明一个对象的方法1
store.tang=4;
store.num=3;
document.writeln(store.tang*store.num);
var wall=new Object();
声明一个对象的方法2
举例子3(复杂一点的对象):
var Person={name:"phodal",weight:50,height:166};/声明一个对象的方法1
function dream(){
future;
};
Person.future=dream;
document.write(typeof Person);
document.write(Person.future);
var Person={name:"phodal",weight:50,height:166};
/声明一个对象的方法1
可以看出,这是一种OO思想。下面就进入主题,开始OO编程了.JavaScript---JS(oo编程)
1).基本OO 入门
简化例子3后的代码:
var Person=function(){Person是一个函数,一个Javascript函数也是一个对象
this.name="phodal";
this.weight=50;
this.height=166;
this.future=function dream(){
return "future";
};
};
var person=new Person();声明的person却变成了一个对象
document.write(person.name+"<br>");
document.write(typeof person+"<br>");
document.write(typeof person.future+"<br>");
document.write(person.future()+"<br>");
var Person=function(){Person是一个函数,一个Javascript函数也是一个对象
this.name="phodal";
this.weight=50;
this.height=166;
this.future=function dream(){
return "future";
};
};
var person=new Person();声明的person却变成了一个对象
document.write(person.name+"<br>");
document.write(typeof person+"<br>");
document.write(typeof person.future+"<br>");
document.write(person.future()+"<br>");
在这个时候Person是一个函数,但是我们声明的person却变成了一个对象
一个Javascript函数也是一个对象,并且,所有的对象从技术上讲也只不过是函数。
ps:这里的“<br>”是HTML中的元素,称之为DOM,在这里起的是换行的作用。this关键字表示函数的所有者或作用域,也就是这里的Person。
可以看出,即使简化后的代码也是有局限性的,不具有通用性!可以最终简化为:
var Person=function(name,weight,height){
this.name=name;
this.weight=weight;
this.height=height;
this.future=function(){
return "future";
};
};
var phodal=new Person("phodal",50,166);
document.write(phodal.name+"<br>");
document.write(phodal.weight+"<br>");
document.write(phodal.height+"<br>");
document.write(phodal.future()+"<br>");
var Person=function(name,weight,height){
this.name=name;
this.weight=weight;
this.height=height;
this.future=function(){
return "future";
};
};
var phodal=new Person("phodal",50,166);
document.write(phodal.name+"<br>");
document.write(phodal.weight+"<br>");
document.write(phodal.height+"<br>");
document.write(phodal.future()+"<br>");
于是,产生了这样一个可重用的Javascript对象,this关键字确立了属性的所有者。
2).关于继承(原型继承)
var Chinese=function(){///创建一个对象object
this.country="China";
}
var Person=function(name,weight,height){///创建一个对象object
this.name=name;
this.weight=weight;
this.height=height;
this.futrue=function(){
return "future";
}
}
Chinese.prototype=new Person();/声明一个原型继承(对象Chinese继承自Person)
var phodal=new Chinese("phodal",50,166);声明一个对象
document.write(phodal.country);
var Chinese=function(){///创建一个对象object
this.country="China";
}
var Person=function(name,weight,height){
///创建一个对象object
3).补充说明的东东
A.完整的Javascript应该由下列三个部分组成:
- 核心(ECMAScript)——核心语言功能
==我们在上面讲的都是ECMAScript,也就是语法相关的
==核心语言功能才是真正在哪里都适用的
- 文档对象模型(DOM)——访问和操作网页内容的方法和接口
==JS真正强大的,或者说我们最需要的可能就是对DOM的操作
==这也就是为什么jQuery等库可以流行的原因之一
- 浏览器对象模型(BOM)——与浏览器交互的方法和接口
==至于BOM,真正用到的机会很少,因为没有完善的统一的标准
一个简单的DOM示例,
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<noscript>
disable Javascript
</noscript>
<p id="para" style="color:red">Red</p>
</body>
<script type="text/javascript" src="app.js"></script>
</html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<noscript>
disable Javascript
</noscript>
<p id="para" style="color:red">Red</p>
</body>
<script type="text/javascript" src="app.js"></script>
</html>
我们需要修改一下helloworld.html添加
<p id="para" style="color:red">Red</p>
<p id="para" style="color:red">Red</p>
同时还需要将script标签移到body下面,如果没有意外的话我们会看到页面上用红色的字体显示Red,修改app.js。
var para=document.getElementById("para");
para.style.color="blue";
var para=document.getElementById("para");
para.style.color="blue";
接着,字体就变成了蓝色,有了DOM我们就可以对页面进行操作,可以说我们看到的绝大部分的页面效果都是通过DOM操作实现的。需要通过在实际的编程中解决问题来提高认识。
B.Javascript冰山一角
本文只是描述下如何设计一个实用的app,而忽略掉了JS中的很大一部分内容(作为一门语言,相c/c++一样,它还有其他强大的功能)
- 我们可以创建一个对象或者函数,它可以包含基本值、对象或者函数。
- 我们可以用Javascript修改页面的属性,虽然只是简单的示例。
- 我们还可以去解决实际的编程问题。
3.CSS(Cascading Style Sheets)
下面就是我们之前说到的代码
CSS+HTML让页面有序的工作着(这时还没有Javascript),但是Javascript却可以打乱这种合作默契。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p id="para" style="color:red">Red</p>/css将Red三个字母变成了红色
</body>
<script type="text/javascript" src="app.js"></script>js将字体变成了蓝色(调用app.js)
</html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p id="para" style="color:red">Red</p>/css将Red三个字母变成了红色
</body>
<script type="text/javascript" src="app.js"></script>js将字体变成了蓝色(调用app.js)
</html>
注解:在app.js中(Javascript)
var para=document.getElementById("para");
para.style.color="blue";
var para=document.getElementById("para");
para.style.color="blue";
将字体变成了蓝色。
当项目很大的时候,就需要
<!DOCTYPE html>
<html>
<head>
<title>CSS example</title>
<link href="./style.css" rel="stylesheet" type="text/css" />css脚本
</head>
<body>
<p class="para">如果没有一个好的结构</p>
<p class="para2">那么以后可能就是这样子。。。。</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>CSS example</title>
<link href="./style.css" rel="stylesheet" type="text/css" />css脚本
</head>
<body>
<p class="para">如果没有一个好的结构</p>
<p class="para2">那么以后可能就是这样子。。。。</p>
</body>
</html>
然后我们有一个像app.js一样的style.css放在同目录下,而他的内容便是
.para{
font-size: 22px;
color:#f00;
text-align: center;
padding-left: 20px;
}
.para2{
font-size:44px;
color:#3ed;
text-indent: 2em;
padding-left: 2em;
}
.para{
font-size: 22px;
color:#f00;
text-align: center;
padding-left: 20px;
}
.para2{
font-size:44px;
color:#3ed;
text-indent: 2em;
padding-left: 2em;
}
这代码和JS的代码有如此多的相似
\d{2}/[A-Z][a-z][a-z]/\d{4}
上面的代码,是为了从一堆数据中找出“某日/某月/某年”。如果一开始不理解那是正则表达式,就会觉得那个很复杂。不过相对来说这门语言还是比其他语言简单易懂一些。