文档章节

js再学习

l
 laughing哥
发布于 2017/09/05 20:52
字数 1573
阅读 1
收藏 0
点赞 0
评论 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
前端学习之路(从入门到入坑...)

学习前端两年多了,拿了阿里巴巴实现offer,想结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考...

阿小庆 ⋅ 06/14 ⋅ 0

WEB前端学习JS灵魂之问:JS为什么是单线程的?

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/27 ⋅ 0

四月前端知识集锦(每月不可错过的文章集锦)

目前自己组建的一个团队正在写一份面试图谱,将会在七月中旬开源。内容十分丰富,第一版会开源前端方面知识和程序员必备知识,后期会逐步写入后端方面知识。因为工程所涉及内容太多(目前已经...

夕阳 ⋅ 05/02 ⋅ 0

学java还是javascript好?哪个更有前途?

  对于哪种语言好这种问题,其实并没有固定的答案,最重要的还是 兴趣!兴趣!兴趣!重要的事情说三遍。无论做什么开发,永远要以兴趣来驱动自己学习。 先大致的说一下,Java学习是一个需要...

W3Cschool小编 ⋅ 04/23 ⋅ 0

用于学习编程和 AI 的教学游戏 - WarriorJS

WarriorJS 是一个采用 JavaScript 开发的教学类游戏,用于学习 JavaScript 编程和人工智能。 简单地说,WarriorJS 是一个需要靠编写 JS 来玩的小游戏,启动后你需要不断攀爬 JS 世界,最终爬...

匿名 ⋅ 2015/05/26 ⋅ 0

给Web前端初学者的一些建议和学习方法路线

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 05/24 ⋅ 0

学习Javascript的8张思维导图

分别归类为:  javascript变量  javascript运算符  javascript数组  javascript流程语句  javascript字符串函数  javascript函数基础  javascript基础DOM操作  javascript正则表达式...

thinkyoung ⋅ 2014/09/23 ⋅ 0

WEB前端开发学习:你思考过为什么JavaScript计算浮点数不准确吗?

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰 ⋅ 06/03 ⋅ 0

基于JS的高级脚本语言 - Sara

Sara-基于JS的高级脚本语言 欢迎使用Sara,Sara是一款基于JavaScript的全新的高级脚本语言! Sara不像我们工作室上一款编程语言作品-Ginit一样,他属于更高级的语言 Sara全面支持高级函数,并...

Skyogo ⋅ 04/15 ⋅ 0

WarriorJS 0.4.0 发布,学习编程和 AI 的教学游戏

WarriorJS 是一个采用 JavaScript 开发的教学类游戏,用于学习 JavaScript 编程和人工智能。简单地说,WarriorJS 是一个需要靠编写 JS 来玩的小游戏,启动后你需要不断攀爬 JS 世界,最终爬上...

王练 ⋅ 05/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 35分钟前 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 52分钟前 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 今天 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 今天 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 9

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部