JavaScript是一种在浏览器解释执行的代码,网页开发必备。
一般放在script属性中。而script 放在body和head中都可以。
1 | <html> |
一般来说,head中是JavaScript的函数声明和定义,body中一般是直接执行的JavaScript语句。document就是整个HTML文件对象。
1 | document.write("hello world"); |
语法点
- 声明变量用var
- 对于习惯python的人,语句结束请不要忘了分号
- JavaScript变量本身是没有类型,但是值是有类型的
- 值得类型有字符串,数值,布尔值,JavaScript不区别整数和浮点数
- js脚本执行完成之后,才会执行docment.write()
- javascript支持switch(){},支持if ,这方面几乎和C语言一样。
函数定义语法
函数定义函数
1 | function add(a,b){ |
函数变量,函数对象,类似于C语言的函数指针
1 | var f = new Function("x","y","return x*y"); |
这样的好处是可以用数据来产生代码,是函数式编程的思想。对于已有的函数,尽可能在自己已有的函数上进行封装,避免函数的修改工作的繁琐。
1 | function add(a,b) |
变量的作用域,定义在函数体外面的变量,整个页面都有效。函数内部,只有函数内有效。只有这两个层级,不存在像for{}之类的内部局部变量
数组
1 | var my_array = new Array() |
数组长度 my_array.length,length随时可以改,随时可以写,取决于最大的下标志,一个append的写法就是
1 | my_array[my_array.length]="hello" |
数组的一些使用
1 | var colors=["red","green","blue]; |
可以给sort传一个自己的compare函数,来实现不同的排序
1 | function compare(a,b){ |
函数splice(删除起始位置,删除个数,插入的元素。。。)
1 | splice(0,2)从第一个位置开始,删除两个元素 |
对象
JavaScript的对象就各种属性值的集合。JavaScript严格来说不算OOP,没有类的概念,不强调先设计类再制造对象
1 | var o = new Object(); |
访问和删除属性
1 | var circle = {x:0, y:0, radius:10}; |
遍历所有属性
1 | for(var e in o) |
构造函数
1 | function Rect(w,h){ |
原型对象prototype,其实可以理解为类属性,高于对象属性的一种属性,只要你不去改写它,那么所有的这一对象的实例都一样的。
但是需要注意,一定是改写,而不是其他的操作。
1 | function Person(){ |
浏览器与JavaScript
浏览器的全局对象是Window,所有的变量都是window的成员
1 | var value=12; |
JavaScript与浏览器的关系
- 放在
<script></script>
标记中间 - 放在
<srcipt>
的src属性中,从外部引入。 - 放在HTML某个事件处理器中。
1 | <script src="util.js"></script> |
事件处理器
onmouseover和onmouseout事件
1 | <p onmouseover="alert('hi');" onmouseout="alert('bye');" > |
body事件onload onunload
1 | <body onload="alert('hi');" > |
简单对话框
- alert
1 | alert("hello world"); |
- confirm
1 | if(confirm("Yes or No?")){ |
- prompt
1 | name = prompt("what is your name?"); |
计时器
1 | <head> |
Window的控制方法
1 | <head> |
关闭window,使用Window.close(),window.location当前的url。如果使用JavaScript改写她,会加载改写的这个URL页面。
1 | <head> |
文档对象模型 DOM
浏览器对象就是window,html页面则是document,里面的内容有五类,页面,表单,表格,链接,图片
可以通过getElementbyName和getElementbyId
1 | <html> |
操作DOM 进行动作,是JavaScript最好的使用场景。
以图片对象为例,做出动画片的效果。
1 | <body onLoad="setInterval('show()',200)"> |
总结
JavaScript则是网页开发的必备选择。我通过网易云的这门课堂,明白了JavaScript的一些理念,对其中的概念不再陌生。对于我现在的学习阶段,问题都很基础,一般来说W3C的网站上都有我的答案。