文档章节

js再学习

l
 laughing哥
发布于 2017/09/05 20:52
字数 1573
阅读 1
收藏 0
  • 变量格式

变量和其他语法的名字都区分大小写;

变量名允许包含字母、数字、美元符号和下划线(但是第一个字符不允许是数字)

可以这样命名var my_mood="happy";或者var myMood="happy";

  • 数据类型

不必明确声明的变量是字符串还是数字,必须明确类型的语言称为强类型(strongly typed)语言,JavaScript不需要进行类型声明,因为它是一种弱类型(weakly typed)语言。所以程序员可以在任何阶段改变变量的数据类型,比如:

var age="thirty three";

age=33;

这在强类型语言中是非法的,但在JavaScript里没问题。

1,字符串

    由零个或多个字符构成,包括字母、数字、标点和空格,必须在单引号或双引号里

    var mood="happy";

    var mood='happy'; 两条语句含义相同

    在有单引号或者双引号的字符中,就把整个字符串放在双引号或者单引号中。

    var mood="don't ask";

    如果非要用单引号,则要对字符中的单引号转义:

    var mood='don\'t ask';

2,数值

    不必限定为整数,允许任意位小数,也可以是负数

    var age=33.25;

    var temperature=-20.3333333;

3,布尔值

    布尔(boolean)类型

    只有两个值可选:true和false

    var sleeping=true;

    和

    var sleeping="true";

    是两码事

  • 数组

    字符串、数值、布尔值都是标量(scalar),它在任意时刻就只能有一个值,如果想用变量存储一组值,就需要用到数组(array)

    var beatles=Array(4);

表示数组长度是4,beatles中有4个值。

    var beatles=Array();也可以

    在向数组中填充时要给出新元素的值和存放位置

    var beatles=Array();

    beatles[0]="John";

    beatles[1]="Paul";

    beatles[2]="George";

    beatles[3]="Ringo";

    另一种方式是:

    var beatles=Array("John","Paul","George","Ringo");

    也可以:

    var beatles=["John","Paul","George","Ringo"];  

    数组元素可以是字符串,布尔值,数值

    var years=[1940,1941,1942,1943];

    var lennon=["John",1940,false];

    数组元素可以是变量:

    var name="John";

    beatles[0]=name;

    将beatles第一个元素赋值为“John”。

    数组元素的值可以是另一个数组的元素,下面两条语句把beatles数组的第二个元素赋值为Paul:

    var names=["Ringo","John","George","Paul"];

    beatles[1]=names[3];

    数组还可以包含其他数组,数组中的任何一个元素都可以把一个数组作为他的值:

    var lennon=["John",1940,false];

    var beatles=[];

    beatles[0]=lennon;

    beatles中的第一元素就是另一个数组,beatles[0][0]的值是“John”,beatles[0][1]的值是1940。

    关联数组

    在填充数组时为新元素给出下标不必局限于使用整数数字,也可以使用字符串

    var lennon=Array();

    lennon["name"]="John";

    lennon["year"]=1940;

    lennon["living"]=false;

    这样的数组叫关联数组,由于可以使用字符串代替数值,所以代码更具有可读性,但是不建议这样做,因为这实际上是给lennon添加了name,year,living三个属性,理想情况下不应该修改Array对象的属性,而应该使用通用的对象(object)。    

  • 对象

     和数组类似对象也是使用一个名字表示一组值,对象的每个值都是对象的一个属性:

    var lennon=Object();

    lennon.name="John";

    lennon.year=1940;

    lennon.living=false;

    其他创建方式:

    var lennon={name:"John",year:1940,living:false};

    var beatles={};

    beatles.vocalist=lennon;

    现在beatles.vocalist.name的值是“John”,beatles.vocalist.year的值是1940,beatles.vocalist.living的值是false。

 

 

  • 操作

    算术操作符,加法减法乘法除法对应操作符(operator)才能完成,+-*/,

    变量可以包含操作

    var total=(1+4)*5;

    变量也可以包含操作

    var temp_fahrenheit=95;

    var temp_celsius=(temp_fahrenheit-32)/1.8;

    给一个变量加1:

    year=year+1;或者year++;

    加号(+)可以用于数值也可以用于字符串,把两个字符串合二为一:

    var message="I am feeling"+"heppy";

    这种将多个字符首位相连的操作叫拼接(concatenation)

    +=可以一次完成加法和赋值

    var year=2010;

    var message="The year is";

    message+=year;

    alert(message);

    得到The year is 2010;

 

  • 条件语句

    if(条件){语句1};  

    只有条件为true时才运行语句。

     if(条件){语句};  

    else{语句2};

    如果条件为true时运行语句1,为false时运行语句2.

    比较操作符>,<,>=,<=,==(等于),!=(不等于)

    相等操作符==并不表示严格相等,例如false与一个空字符

    var a=false;

    var b="";

    if(a==b){alert("a equal b")};

    应用全等操作符===,不仅比较值而且比较变量类型。

    !=对应!==

  • 逻辑操作符

    与:&&,或||,非!(布尔值取反,例如if(!(1>2){})

  • while循环

    while(条件){语句},和C语言类似,不赘述

    do{语句}while(条件);执行完语句再求值条件

  • for循环

    for(赋值,判断,操作){语句},和C语言类似,不赘述

  • 函数

    function shout(){}

  • 作用域

    全局变量和局部变量其实说的就是变量的作用域

    举例:

function square(num){
			total=num*num;
			return total;
		}
		var total=50;
		var number=square(20);
		alert(total);
		alert(number);

弹窗为400和400,因为此时函数中的total没有声明(var)为局部变量,所以函数里面的total是全局变量

function square(num){
			total=num*num;
			return total;
		}
		var number=square(20);
		var total=50;
		alert(total);
		alert(number);

弹窗为50和400,

function square(num){
			var total=num*num;
			return total;
		}
		var total=50;
		var number=square(20);
		alert(total);
		alert(number);

弹窗为50和400,函数中的total是局部变量(已经用var声明),所以不会影响外部total 的值。

48页

  • addLoadEvent

他的参数:打算在页面加载完毕时执行的函数的名字

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != "function"){
		window.onload = func;
	}else{
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

!= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较. !== 不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型, 它是恒等运算符===的非形式.

关于addLoadEvent函数,这里有个详解,http://www.cnblogs.com/joyan/archive/2010/06/29/1767577.html2010年写的文章,直到今天依然很受用,博客的魅力!

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 2
码字总数 2323
作品 0
如何轻松快速学习JavaScript 呢?

JS给人那种感觉的原因多半是因为它如下的特点: 1:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。 2:本身内容很多,如函数库,对象库就一大堆。 3:混合多种编程思想。 4:辛苦学习...

课工场CC老师
2017/11/04
0
0
想做web开发,就学JavaScript

原文出处:Tony Patton 译文出处:腊八粥 有一天我被问到,为了快速地在web开发工作上增加优势,应该学习什么语言。我的思绪回到了大学,那时候我用Pascal、Fortran、C和汇编语言,不过那个时...

Tony Patton
2014/12/02
0
0
学JavaScript,做web开发

有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言。我的思绪回到了在麦子学院学习的时光,那时候我用 Pascal、Fortran、C和汇编语言,不过那个时候有不同的目标。 想...

yexiaobo1990
2015/07/23
0
0
八个任务助你学好JavaScript

学习新的东西是件可怕的事。对我来说,掌握一项新技能最大的问题是,我不知道自己懂什么。鉴于此,定个计划,学习你感兴趣的东西应该会有用。这篇文章的主旨就是:你为学习JavaScript 制定的...

铂金小猪
2011/10/19
0
0
JavaScript入门(八)

小结 在这一章中,我们学习了什么是JavaScript、它是如何工作的以及它的优缺点。它最大的缺点是我们不能信任获得的信息是否可靠,对此我做了注解,但是我同样也提到,使用JavaScirpt可以使网...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
1
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部