写给后端工程师的前端课程(蛋人网)

3.JavaScript入门
4.jQuery和Ajax学习

3.JavaScript入门
两个方面的内容:javascript入门和javascript的DOM操作
基本数据类型:
Number
Boolean
String
Array
Object(在ruby中是hash数据类型)

//对象的定义方法
var user = {
  name: "jayzen",
  age: 18
}
//对象值的获取方式
console.log(user.name); 
console.log(user['age']);

变量声明

//使用var声明变量
var a;

//也可以不采用var声明变量,但是前提这个变量是引用了外部作用域(也是全局作用域)的变量

//用例子进行说明
var x=1;

function counter(seq){
  var x = seq * seq;  #定义一个局部变量x,不会改变上面变量x的值
  return x;
}
function counter2(seq){
  x = seq * seq; #x是最上面的var x的值,这条语句会改变最上面全局变量x的值
  return x;
}

Function

//一般的定义方式
function hello(name){
  console.log(name);
}
hello('343'); //调用方式,如果没有带参数,也是需要()这个括号

//定义匿名函数
var showAlert = function(name){
  console.log(name);
}
showAlert('343');

//闭包(保留了作用域的变量值)
var showAlert = function(name){
  name = name + "" + "world";

  return function(index){
    console.log(index + "" + name);  //能获取上层作用域的变量
  }
}

var error = showAlert('hello');
error(1);

//闭包的另外一种表现形式,好处是避免变量之间互相影响
(function(){
  var a = 1;
  console.log(a);
})();  //相当于执行了一个匿名函数 => 匿名函数.()

function返回值

//function的返回值必须使用return关键词,不像ruby中可以使用代码中的最后一句话作为返回值
function counter(x){
  return x**x
}
counter(2);

什么是false

null
undefined
false

变量命名

//驼峰式命名,第一个词全部小写,第二个词首字母大写,其他小写
var helloWorld = "hello world";
function showAlert(){.....};

条件控制

if (true){
...
}else{
...
}

循环和遍历

//初始值,变化值,以及判断条件
for(var x=0; x++; x<10){
...
}

条件控制

//使用while
var x=10;
while(x>=0){
  console.log(x);
  x--;
}

//使用switch
switch(a){
  case 1:
  ...
    break;
  default:
  ...
}

javascript的DOM操作
DOM操作

//dom节点查询
//dom节点标签属性增加、删除、修改
//dom节点增加、删除、修改
//浏览器事件的操作

document.getElementByTags('a');
document.getElementByClassName('row');

Event事件

click
mouseover
mousemove
focus
blur
touch

4.jQuery和Ajax学习
jquery是对js的DOM操作的一些封装,同时对不同浏览器的兼容性做了处理。jquery是基于DOM实现的。
jquery的dom节点选择

//$符号是jquery提供的全局变量
$('p');  //获取所有的p标签
$('.row'); //获取所有class为row的节点
$('#wrapper');  //获得id为wrapper的节点
$('.row:last');//获得class为row的节点中的最后一个节点
$('input[name="username"]'); //获得标签为input,同时name为username的节点

//dom节点的维护
$('p').hide();
$('p').show();
$('p').remove();

//jquery对象!=DOM对象
var wrapper = $('#wrapper');
var wrapper2 = document.getElementById('wrapper');
wrapper == wrapper2 //false
wrapper.get(0) == wrapper2 //true, wrapper是一个数组

//DOM属性操作
$('#wrapper').addClass('theme');
$('#wrapper').removeClass('theme');
$('#wrapper').attr('class');//返回当前给定属性节点的值
$('#wrapper').attr('custom-attr', 'attr_value');//当前属性的值设置为value
..
$('a').attr('href');

//jQuery的事件绑定
$('#wrapper').click(function(){
  console.log("wrapper clicked");
})
//same as above
$('#wrapper').on('click', function(){
  console.log("wrapper clicked");
})
//自定义事件
$('#wrapper').on('custom-event-name', function(e){
  console.log("custom event triggered");
})
$('#wrapper').trigger('custom-event-name');

//自定义事件-动态元素的绑定,针对本来页面上不存在的元素
$(document).on('click', '#wrapper', function(e){
  console.log("custom event triggered")
})

//animate动画
$('#wrapper').animate({
  height: 300,
  opacity: 0.2
})

ajax介绍
asynchronous javascript and xmlhttprequest

//直接使用jquery的ajax
$.ajax({
  url: '/sessions',
  type: 'post',
  data: {username: 'username', password: 'password'},
  dataType: 'json',
  beforeSend: function(e){
  ...
  },
  success: function(data){
  ...
  },
...
})

JSON
javascript object

{
  total_entries: 30
  rows: [
   {id: 1, username: "343"},
   ...
  ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容