您现在的位置:首页 > 技术 > JavaScript知识笔记4:JavaScript一些常识

JavaScript知识笔记4:JavaScript一些常识

JS相对于那些所谓重量级语言(C++、C#、Java等),在某些操作上显得方法笨拙,但是当你真正地去理解并研究它更深的领域,其实发现JS是一种相对原生的编程语言。在它的世界里面,我们可以发挥自己的思维结合自己的思想,创造一些意想不到的结果。

2016年07月

透明伽然

JavaScript一些常识

1.  区分大小写

JavaScript区分大小写。这也是很多语言都遵循的一个原则,由于自己本什么接触的语种并不是很多暂时接触过的语言中只有VBSQL是不区分大小写的,其他接触过的语言都是对大小写敏感的。

1JS中关键字都是小写。varthistruefalsenullfunctionifforwithwhile等,这里额外说一点,undefined不是一个关键字,而是一个全局变量,数据类型是undefined,唯一值为undefined

2)自定义变量可以是任意大小写组合。变量名可以包含任意大小写字母和数字,但是不能以数字开头,不能包含空格和除了(_)之外的标点符号。

2.  关于空格、缩进、换行

经常我们会在代码段中使用空格、缩进以及换行,这样可以更好地增加代码的可读性和美感。

1JS是忽略空白的,这一点jQuery min.js文件已经给我们解释得很好了,只是大多数人看见min.js的源码就会头疼。

2)换行(回车)在JS代码中至关重要。这里需要大家注意的是,在一个有返回值的函数中,return 语句之后不要换行,否则你更多的时候根本得不到你想要的结果,而是undefined

原因:JS函数定义时不像其他语言需要声明返回值,它只在return的时候才确定返回数据类型。如果函数内return后直接换行,JS在解析的时候直接会在return后加上;这样后面的语句将不会被执行,因而是undefined

3.  分号

在完成的单条JS语句后面可以省略,这样被JS所允许。虽然可以这样做,但是最好不要这样做,很多时候会给我们带来一些意想不到的效果。

4.  隐式类型转换

1)隐式转换为数字

                                               

 

我们经常在代码里面会使用parseInt()或者parseFloat()来将字符串变量转化为数字类型变量再进行计算,其实JS的机制是:它如果想要接收数字,它并不拒绝其他类型的值,而是试图把它们转换成数字。

在类似以上(-)表达式中,会执行减法运算

2)隐式转换为布尔类型

JS中任何一个值都可以转换为布尔值,我们只需要记住以下这些转换结果是false的值:undefinednullfalse-0+0NaN、‘’

其他的任何值都被认为是true。这样我们在作if判断时,在某些时候就可以简化它的写法:

判断是一个变量是否有值?

3)字符串的隐式转换

使用(+)运算符,只要其中任何一个操作数是字符串,那么表达式就会执行连接字符串的操作,不会执行加法运算。

综上所述,我对于JS的数据类型有这样的理解:JS并不存在数据类型,只有值类型,类型取决于值类型。

5.  for循环和for..in循环

现在我们多数时候都在使用jQuery,对于each()相比都不是很陌生,但是学习原生JSfor循环、for..in循环那是必须掌握的。

for循环,基本语法:递增 for(var i=0;i<max;i++){}、递减for(var i=max;i>0;i--){}

JS中还为我们提供了一种特殊的循环方式(for..in循环),用来迭代对象属性或数组的每个元素。

输出:

输出:

但是实际代码中我们更希望得到的是对象的属性值或数组的元素值,我们可以这样修改一下代码

输出:

输出:

6.  未知的变量名将会创建一个全局变量

JS的语法很随意,在变量声明方面并没有严格规定,但是我们至少要遵循一种大家约定成熟的一套准则

1)变量必须var声明

2)尽量减少对全局变量的污染,慎重选择使用全局变量

7.  JavaScript是一种弱类型语言

暂时我只知道CJS是弱类型语言,因为它们有共同点:容忍隐式类型转换。JS只有一种类型var ,为变量赋值时会自动判断类型并进行转换。

8.  原型对象prototype

prototype原型对象,我们在编码的时候经常可能会用到,或者经常在学习一些插件源码的过程中会看见它的用法。上述例子中

这就是prototype原型对象常见的一种用法,在String原型上添加了trim()方法

 返回值为:zzzz

这里要作说明,String并不是test的数据类型,String同样是一个对象,一个字符串类型原型对象。

输出:

当我们在函数prototype上绑定属性的时候,那么属性和值就绑定到了prototype对象上,并没有正真的绑定到那个对象上去。当需要访问那个对象上的这个属性的时候,JS解析器,首先会去从对象本身上去找这个属性,然后再到原型对象上找。

JS相对于那些所谓重量级语言(C++C#Java等),在某些操作上显得方法笨拙,但是当你真正地去理解并研究它更深的领域,其实发现JS是一种相对原生的编程语言。在它的世界里面,我们可以发挥自己的思维结合自己的思想,创造一些意想不到的结果


订阅

欢迎订阅AnyForWeb出版物
欢迎订阅伽然出版物

栏目推荐

栏目推荐
JavaScript知识笔记9…

在jQuery源码中我们经常能看见各式各样…

栏目推荐
JavaScript知识笔记8…

函数的调用应该才是函数产生的根本,减…

栏目推荐
JavaScript知识笔记6…

在JS中使用操作符主要用来执行数学、相…

栏目推荐
JavaScript知识笔记5…

周知JS语法相对简单,语言结构简单,这…

栏目推荐
JavaScript知识笔记4…

JS相对于那些所谓重量级语言(C++、C#…

栏目推荐
JavaScript知识笔记3…

Javascript中this是一个指针概念,它表…

栏目推荐
JavaScript知识笔记2…

常见的变成语言Java、C#、C++等,同样…

AnyFroWebUED  

版权所有 © 2009-2016  沪ICP备14026814号-10

 

 

返回

很抱歉!

您现在还没有开通阅读权限,如有疑问,请联系我们。

联系电话:021-52047186

返回