1.java vs. javascript
2.网络编程学习工具
2.1.codepen
http://codepen.io/sorcerer-ma/pen/AIexD
Welcome to code an hour!
http://codepen.io/sorcerer-ma/
我的空间
js的在线文档
2.2.codeacademy
快速了解js
http://www.codecademy.com/zh/learn
2.3.codeschool-jquery教程
3.应用比较广泛
node.js, appium
无所不能?
4.IDE-编辑器记事本
sublime(可以更改颜色)
notepad++
vim
5.pair programme
结对编程
// 在括号中写入你的名字试试看
document.write("jian zhang");
var var1="2"-1;
alert(var1);
var bln=confirm("你确定要删除吗?");
if(bln === true){
//do sth
alert("已经删除!");
}
var name=prompt("请输入姓名:");
alert("你的姓名是"+name);
//值传递 vs. 引用传递
//五种基本类型都是值传递
//对象,数组都是引用传递
函数式语言
函数作为第一类公民
但是不支持lamda表达式
面向对象
闭包
原型链机制-实现继承
没有class关键字
也是使用function关键字
一切都是对象
教室,人,jianzhang
抽象-具体
类-实例
三大特点:封装,继承,多态
// 在括号中写入你的名字试试看
document.write("jian zhang");
var var1="2"-1;
alert(var1);
var bln=confirm("你确定要删除吗?");
if(bln === true){
//do sth
alert("已经删除!");
}
var name=prompt("请输入姓名:");
alert("你的姓名是"+name);
//值传递 vs. 引用传递
//五种基本类型都是值传递
//对象,数组都是引用传递
function Person(name)
{
this.myName=name;
this.SayHello=function(friend){
document.write("Hello,"+ friend + ".my name is "+this.myName);
}
}
var Jessica =new Person("Jessica");
Jessica.SayHello("ffriend11");
//alert(Jessica.SayHello("xiaoma"));
//另外一种写法,两个花括号里面就是一个对象
var XiaoMa={
myName:"XiaoMa",
SayHello: function(friend){
document.write("Hello,"+friend+"!My name is "+this.myName);
}
}
alert(XiaoMa.myName);
XiaoMa.SayHello("Jessica");
XiaoMa.sex="Female"; //动态加入一个熟悉sex,这个是js的动态特点,但是同一个类型的其他实例不受影响。涉及到原型,是高级话题,暂时不说
alert(XiaoMa.sex);
context是浏览器
人类和浏览器交流的语言就是javascript
运行环境
google V8引擎,nodejs
IE比较特殊,不怎么跟着规范来,EMCAScript
8.练习
var getCustomChoice = function() {
var choices = document.getElementsByName('custom');
for (var i = 0, len = choices.length; i < len; i++) {
if (choices[i].checked === true) {
return choices[i].value;
}
}
}
var randomComputerChoice = function() {
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "石头";
} else if(computerChoice <= 0.67) {
computerChoice = "布";
} else {
computerChoice = "剪刀";
}
return computerChoice;
};
var compare = function(choice1, choice2) {
if (choice1 === choice2) {
return 0;
}
if (choice1 === '石头') {
if (choice2 === '剪刀') {
return 1;
} else {
return -1;
}
}
if (choice1 === '布') {
if (choice2 === '石头') {
return 1;
} else {
return -1;
}
}
if (choice1 === '剪刀') {
if (choice2 === '布') {
return 1;
} else {
return -1;
}
}
};
document.getElementById('start').onclick = function(){
var customChoice = getCustomChoice();
var computerChoice = randomComputerChoice();
document.getElementById('player').innerHTML = customChoice;
document.getElementById('computer').innerHTML = computerChoice;
var result = compare(customChoice, computerChoice);
var resultStr = '';
if (result === 0) {
resultStr = '平局';
} else if (result === 1) {
resultStr = '你赢了';
} else {
resultStr = '你输了';
}
document.getElementById('result').innerHTML = resultStr;
};
//练习:算法题
// tips: 请查找 js 中 Math 对象的用法
var calc = function(v, d) {
// write your code here
var dd1=d*9.8/(v*v);
//alert(dd1);
var ang=Math.asin(dd1)/2.0;
//alert(ang);
return ang*180/Math.PI;
}
document.getElementById("calc").onclick = function() {
var v = document.getElementById("v").value,
d = document.getElementById("d").value;
var answer = calc(v, d);
//alert(answer);
document.getElementById("answer").innerHTML = answer;
}