javascript权威指南学习笔记1

打开这本书,进入到javascript的世界。以前都是看各种视频,感觉什么收获也没有,反而弄得脑袋混乱,希望能够按照这本书的节奏掌握javascript这门语言,为我的前端学习打下基础。

学习前准备:web浏览器(F12用来唤醒和关闭firebug界面,ctrl+shift+j用来唤醒错误工作台,console.log()调试辅助)

本书分为4个部分:Javascript语言核心;客户端Javascript;Javascript核心参考;客户端Javascript参考。今天主要学了第一部分。主要收获简述:

前言

1: javascript语言核心 和 客户端javascript的简述

  和以往相比,这本书在最开始向我介绍了:

  (1)注释方法 : //所有在双斜杠后面的内容都属于注释

  (2)变量:var x=0;//变量是表示值的一个符号名字,用var关键字表示,通过等号赋值

  (3)数据类型:number bool object undefined null 等

  (4)对象:键值对(名==值)有属性,通过“.”或者“[]”来访问,就像各种检索目录一样,一级级的往下寻找。例如:

 1 var book={//等于号莫忘记
 2     author:"fanfan",
 3     name:"javascript",//不同属性之间用“,”分隔
 4     buy:false
 5 };
 6 console.log(book.author);//获取book的author属性=》fanfan
 7 console.log(book["name"]);//中括号里面的属性名称要加双引号
 8 book.topic="study";//若book属性原本没有topic属性,这时候相当于添加了一个topic属性,并且值为study。
 9 console.log(book.topic);
10 book.content={};//设置一个空的属性
11 console.log(book.content);

  (5)函数:是带有名称和参数的javascript代码段,可以多次调用

1 var square=function(x){
2     return x*x;
3 };
4 square(4);

  (6)方法:当函数和对象合在一起的时候,就变成了方法。即当函数赋值给对象的属性,即为方法,所有的javascript对象都含有方法。

 1 var a=[];
 2 a.push(1,2,3);//数组赋值push方法
 3 a.reverse();//数组倒序
 4 //我们也可以定义自己的方法,this关键字就是对定义方法的对象的引用
 5 var points=[
 6 {x:0,y:0},
 7 {x:1,y:1}];
 8 points.dist=function(){
 9   var p1=this[0];
10   var p2=this[1];
11   var a=p2.x-p1.x;
12   var b=p2.y-p1.y;
13 return  Math.sqrt(a*a+b*b);
14 }
15 points.dist();

  (7)控制语句:条件判断和循环

  (8)面向对象:构造--》实例化--》附加方法--》继承

//构造函数,无return,初始化一个新的Point
function  Point(x,y){
    this.x=x;
    this.y=y;
}
//new一个Point点实例
var p=new Point(1,1);
//给Point附上一个r方法
Point.prototype.r=function(){
    return Math.sqrt(this.x*this.x+this.y*this.y);
};
//调用p的r方法,继承
p.r();

  (9)客户端的javascript。主要是操作dom等。

    示例:基于javascript的贷款计算器。(代码下载:http://yun.baidu.com/share/link?shareid=538259612&uk=3811305747

  • 如何在文档中查找元素  var amount=document.getElementById("amount");
  • 如何通过表单input元素来获取用户的输入数据  var principal = parseFloat(amount.value);
  • 如何通过文档元素来设置html内容  payment.innerHTML = monthly.toFixed(2);
  • 如何将数据存储在浏览器中

    1 save(amount.value, apr.value, years.value, zipcode.value);
    2 function save(amount, apr, years, zipcode) {
    3         if (window.localStorage) { // Only do this if the browser supports it
    4             localStorage.loan_amount = amount;
    5             localStorage.loan_apr = apr;
    6             localStorage.loan_years = years;
    7             localStorage.loan_zipcode = zipcode;
    8         }
    9     }
  • 如何使用脚本发送http请求

     1 function getLenders(amount, apr, years, zipcode) {
     2         // If the browser does not support the XMLHttpRequest object, do nothing
     3         if (!window.XMLHttpRequest) return;
     4
     5         // Find the element to display the list of lenders in
     6         var ad = document.getElementById("lenders");
     7         if (!ad) return; // Quit if no spot for output
     8
     9         // Encode the user‘s input as query parameters in a URL
    10         var url = "getLenders.php" + // Service url plus
    11             "?amt=" + encodeURIComponent(amount) + // user data in query string
    12             "&apr=" + encodeURIComponent(apr) +
    13             "&yrs=" + encodeURIComponent(years) +
    14             "&zip=" + encodeURIComponent(zipcode);
    15
    16         // Fetch the contents of that URL using the XMLHttpRequest object
    17         var req = new XMLHttpRequest(); // Begin a new request
    18         req.open("GET", url); // An HTTP GET request for the url
    19         req.send(null); // Send the request with no body
    20
    21         // Before returning, register an event handler function that will be called
    22         // at some later time when the HTTP server‘s response arrives. This kind of
    23         // asynchronous programming is very common in client-side JavaScript.
    24         req.onreadystatechange = function() {
    25             if (req.readyState == 4 && req.status == 200) {
    26                 // If we get here, we got a complete valid HTTP response
    27                 var response = req.responseText; // HTTP response as a string
    28                 var lenders = JSON.parse(response); // Parse it to a JS array
    29
    30                 // Convert the array of lender objects to a string of HTML
    31                 var list = "";
    32                 for (var i = 0; i < lenders.length; i++) {
    33                     list += "<li><a href=‘" + lenders[i].url + "‘>" +
    34                         lenders[i].name + "</a>";
    35                 }
    36
    37                 // Display the HTML in the element from above.
    38                 ad.innerHTML = "<ul>" + list + "</ul>";
    39             }
    40         }
    41     }
  • 如何利用<canvas>元素绘图   

     1 var g = graph.getContext("2d");
     2 g.moveTo(paymentToX(0), amountToY(0)); // Start at lower left
     3         g.lineTo(paymentToX(payments), // Draw to upper right
     4             amountToY(monthly * payments));
     5         g.lineTo(paymentToX(payments), amountToY(0)); // Down to lower right
     6         g.closePath(); // And back to start
     7         g.fillStyle = "#f88"; // Light red
     8         g.fill(); // Fill the triangle
     9         g.font = "bold 12px sans-serif"; // Define a font
    10         g.fillText("Total Interest Payments", 20, 20); 

     

总结:要清楚的明白对象、函数、方法三者之间的关系。客户端的例子基本能看懂,但是自己写不出来。主要是localStorage和http请求无法自己独立完成。以后会回来复习默写的。

时间: 2024-10-05 05:06:08

javascript权威指南学习笔记1的相关文章

JavaScript权威指南学习笔记之一

1.关于分号 javascript里面不强制使用分号来表示一行语句的结束,但是最好能够在写js之前,特别是在原有的js上面新增时,最好前置一个分号.避免这种情况发生:  2.JavaScript类型转换 3.关于=== ①如果类型不同则不等 ②null===null或undefined===undefined ③true===true或false===false ④NaN不等 ⑤0===0 0===-0 ⑥如果是同一个object,array,function则相等 4.关于== ①如果已经==

javascript权威指南学习笔记2

Javascript语言核心(2~12章) 第三章:类型.值.变量 1.数字: overflow(Infinity, -Infinity).underflow(+0,-0) 非数字值:它和任何值都不相等,包括自身.if(x!=x) return NAN:==>isNaN()判断是不是NaN或者字符串等 javascript的精度要注意,即(0.3-0.2)!=(0.2-0.1) Date()构造函数:月份从0开始计数,天数从1开始计数,星期天是0: 2.文本: 转义字符(牢记斜杠后面几个特殊的值

javascript 权威指南学习笔记

//通过id查找多个元素 function getElements(/*ids...*/){ var elements = {}: for(var i=0; i<arguments.length; i++){ var id = arguments[i]; var elt =document.getElementById("id"); if(elt == null) throw new Error("No element with id :" +id); ele

Git权威指南学习笔记(一)Git初始化

1.在Git中配置用户名和邮件地址 $ git config --global user.name "Jymn_Chen" $ git config --global user.email "[email protected]" 注意把用户名和邮件地址替换成你自己的资料. 在这里的参数global表示配置的作用范围是当前用户,如果将参数改为system,那么配置的作用范围是系统中的所有用户. 2.创建版本库 新建一个目录并cd到目录中,执行以下命令: $ git i

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

MongoDB权威指南学习笔记4---查询相关的知识点

1 find find({查询条件},{"key":1,"email":1})  后面表示返回哪些键 2 可用的比较操作符 $lt , $lte,$gt,$gte 比如db.users.find({"age":{"$gte":18,"$lte":30}}) 3不等于 find(...{"key":{"$ne":"value"}} 4 in find

MongoDB权威指南学习笔记5---索引相关的知识点

1 查看查询计划 db.user.find({"username":"xxx"}) .explain() db.doc.find({"es_y":"2014"}).explain() {  "cursor" : "BasicCursor",  "isMultiKey" : false,  "n" : 0,  "nscannedObject

Hadoop权威指南学习笔记一

Hadoop权威指南学习笔记一 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 1. 数据的增长远远超过了磁盘的读取速度,传统的数据存储方式和分析方式变得不再适用于大数据的处理. Hadoop分为两大核心技术,HDFS(HadoopDistributed File System-分布式hadoop文件处理系统)和MapReduce(分为Map-数据映射等

sencha touch权威指南---学习笔记5-经纬度获取计算直线距离

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />    <title></title>    <link rel="stylesheet" href="sdk-touch/resources/css/sencha-touch.