javascript基础之一

简介: 上周收到汤姆大叔的赠书《JavaScript编程精解》(顺风快递哦,大叔果然给力),迫不及待浏览了下,首先看到是各种对该书原著的赞誉,非常期待接下来的阅读体验。读完第一章,已经非常吸引我持续读下去。因为书里的内容很对我的胃口——简明扼要,把握细节。

上周收到汤姆大叔的赠书JavaScript编程精解(顺风快递哦,大叔果然给力),迫不及待浏览了下,首先看到是各种对该书原著的赞誉,非常期待接下来的阅读体验。读完第一章,已经非常吸引我持续读下去。因为书里的内容很对我的胃口——简明扼要,把握细节。 这里我把自己觉得很细节,很重要的部分记录下来,以方便今后的学习和查阅,当然也希望给正在学习javascript的朋友一些方便。

这里再次感谢大叔提供了这么好的javascript学习书籍,想学习javascript的同学,不要错过这本书哦 o(∩_∩)o

一,javascript基础

1.undefinednull:当使用var something;定义一个变量,alert(something)得到就是undefined。undefined和null主要是理论上的区别:null表示该值被定义,但是没有任何实际值。undefined==null返回true。

2.自动类型转换

下面几个判断都会返回true:false==0  ""==0  "5"==5  在多数情况下会将一个类型的值转化为另一个类型进行判断,但是当遇到null或者undefined的时候,只有两边都是null或undefined时才返回true。0NaN空字符串(""或者空白字符(串)"  ")转化为false,其他所有的值都会转化为true。

如果不想发送任何类型的自动转化,可以使用另外的两个操作符:===!==。分别表示精确相等和精确不等,此时,null===undefined,false===0,""===0,"5"===5都会返回false。

如果数字和字符串相乘,javascript会尝试将字符串转换为数字。如"Apollo"+5——>Apollo5,null+"ify"——>nullify,"5"*5=25,"zxf"*5=NaN.因为字符串不是数字,所以得到的结果也不是数字,NaN==NaN返回的是false,判断是否是数字可以用isNaN函数。

3.&&||

||的作用:如果能将该值转化为bool,并且值为true,就返回左边的值,否则返回右边的值

&&的作用:当左边的值为false时,返回左边的值,否则返回右边的值。

另:只在必要时才执行表达式右边的值,例如true||X,不管X什么,结果都是true,因此X从来就没有被执行过。

4.函数

在C#等其他语言中,大括号是可以产生新的作用域的,但是在javascript中,函数是唯一可以创建新作用域的地方。如:

var a=0;
if(true)
{
    var a=1;
}
alert(a);

此时,内外a的值都是1.

4.1 函数值

javascript里面的所有东西都是值,包括function函数,可以像定义一个普通变量一样定义函数。如:

var a=null;
function b(){alert("B");}
(a||b)();

(a||b)()这里将"调用时不传参数"的操作符"()"应用到了(a||b)上,如果该表达式产生的不是函数,则会报错。用匿名的函数也可以:(a||function(){alert("B");})();

4.2 闭包

如果创建局部变量的函数调用不在栈上了,那局部变量会发生什么变化,如下:

function createFunction(){
  var local=100;
  return function(){return local;};
}
var a=createFunction();
alert(a());//输出100

调用createFunction()返回一个函数,这里赋给了a(体现了函数值的能力),a再加上"调用时不传参数"的操作符"()"执行返回的函数function(){return local;},local的值被保存了下来,javascript的这种特性成为闭包——包裹一些局部变量的一个函数叫做一个闭包。再如:

function makeAdder(amount){
     return function(number){
         return number+amount; 
     };
}
var addTwo=makeAdder(2);
alert(addTwo(3));//输出5 这里因为闭包保存了amount这个变量的值

ps:感谢大叔这么简短有力的文字,让我对闭包有了更多的了解,之前看过一些关于闭包描述,都不是很清楚。现在好多了o(∩_∩)o

相关文章
|
25天前
|
Web App开发 JavaScript 前端开发
JavaScript基础
JavaScript基础
10 0
|
6月前
|
JavaScript 前端开发 Java
JavaScript基础(一)
javascript是一种运行在客户端(浏览器)的编程语言,可以用来创建动态更新的内容,控制多媒体,制作图像动画等交互效果。
48 1
|
11月前
|
存储 JavaScript 前端开发
Javascript基础
Javascript基础
104 0
|
存储 JavaScript 前端开发
JavaScript基础(1)
JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 本教程将教你学习从初级到高级 JavaScript 知识。
136 1
|
JavaScript 前端开发
3 JavaScript基础使用
读前思考! 在使用之前要先明白2个问题: 在哪里写(用)JavaScript代码? 如何写JavaScript代码?
92 0
|
JavaScript 前端开发 Java
JavaScript的基础使用
JavaScript的基础 一、javascript简介 JavaScript简称js,最初由网景(现在的Mozilla)公司创建,由于商标冲突原因,其标准版本命名为ECMAScript,但是一般人们还是叫JavaScript,只在谈标准的时候说到ECMAScript这个名字。值得注意的是JavaScript与java没有任何关系,就像雷峰塔(神话中镇压白娘子的塔)和雷锋。此外js(JavaScript)和jsp(java servlet pages)也没有关系。   js的工作分为两部分,一部分属于js语言本身的特性,而另一部需要依靠宿主环境(web浏览器)才能完成。 二、javascri
JavaScript的基础使用
|
存储 移动开发 JavaScript
一篇学完JavaScript基础
前言 学习Javascript也有好长时间了,遂把这一阶段的学习内容整理成笔记,巩固所学知识,同时也会参考一些博客,书籍上的内容,查漏补缺,给自己充充电🔋🔋 文章内容如有错误,欢迎指正批评✔️✔️
一篇学完JavaScript基础
|
存储 JavaScript 前端开发
JavaScript基础(中)
JavaScript基础(中)
145 0
JavaScript基础(中)
|
存储 JavaScript 前端开发
JavaScript基础第02
JavaScript基础第02
143 0
|
自然语言处理 JavaScript 前端开发
155个JavaScript基础问题(26-30)
155个JavaScript基础问题(26-30)
151 0
155个JavaScript基础问题(26-30)