自学JavaScript - day 1(语法,数据类型,数组,变量)

JavaScript

自学javascript,基于 廖雪峰老师的JavaScript教程 ,记录自己的学习过程,仅供学习使用。

JavaScript代码

JavaScript代码的位置:

  1. 网页 :通常放在<head>中,例如
<html>
<head>
	<script>
		alert("Hello World");
	</script>
</head>
<body>
	...
</body>
</html>

<script>...</script>包含的代码就是javascript代码,可以直接被浏览器执行

  1. 放在.js文件中
<html>
<head>
   <script src="/static/js/abc.js">
   </script>
</head>
<body>
   ...
</body>
</html>

注:
可以在同一个页面中引入多个.js文件,也可以在页面多次编写<script>...</script>代码,浏览器会按照顺序依次执行

基本语法

与java语法类似,以;结尾

语法

赋值语句

var x=1;    	//声明一个整数型变量
var s='abc';		//声明一个字符串

注释

//单行注释

/*
多行注释
*/

数据类型

Number

不区分整数和浮点数

123			//整数
0.2			//浮点数
1.2e2		//科学记数法,1.2e2=1.2*10^2=120
NaN			//Not a Number,无法计算结果时,如计算 0/0
Infinity	//无限大,当数值超过了所能表示的最大值时,如计算 2/0

由于计算机使用二进制,所以,用十六进制表示整数更方便,十六进制用0X前缀和0-9a-z表示,如0xfa00,0xa1b2c3d4

字符串

示例:"abc",'abc'

布尔

一个布尔值只有truefalse两种
几种运算:

运算 名称 例如 结果为true的条件
&& 与运算 a&&b 所有(a和b)都为true
|| 或运算 a||b 只要有一个(a或b)为true
! 非运算 !a 或 !true a为false

比较运算符

对任意数据类型进行比较,得到一个布尔值

1>2;		//false
1<2;		//true
1==1;		//true

//其他类型的比较
false==0;		//true
flase===0;		//false
设计缺陷:2种相等比较运算符

(设计缺陷,使用===较好)

符号 描述 结果
== 会自动转换数据类型再比较 有时结果会比较诡异
=== 不会自动转换数据类型 数据类型不一致,返回false;数据类型一致,再进行比较
NaN的比较

NaN与其他所有值都不想等,包括他自己

NaN===NaN;	//false
//唯一能判断的方法
isNaN(NaN);	//true
浮点数的相等比较

浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个附带念书只能计算他们之差的绝对值,看是否小于某个阈值

1/3 === (1 - 2/3);						//false
Math.abs(1/3 === (1 - 2/3))<0.0000001;	//true

null

null0''的比较

null 0 ''
数值‘0’ 长度为0的字符串

nullundefined

null表示一个空的值
undefined表示值未定义
区分两者意义不大
大多数情况使用null
仅仅在判断函数参数是否传递的情况下使用udefined

数组

数组是一组按顺序排列的集合,集合的每个值称为元素。可以包括任意数据类型。

数组的表示:

//第一种
[1,2,true,null,'abc'];
//第二种
new Array(1,2,,true,null,'abc');

数组元素的访问

通过索引来访问,索引起始值为0

var a=[1,2,true,null,'abc'];
arr[0];		//1
arr[5];		//'abc'
arr[6];		//索引超出范围,返回undefined

对象

键-值组成的无序集合
键:字符串(又称为对象的属性)
值:任意类型

var person={
	name:'Bobby',
	age:24,
	tags:['rapper','handsome'],
	isChinese:false,
	otherInfo:null
};
/*每个键又称对象的属性
  person 的 name 属性为 'Bobby'
  age 属性为 24
*/
//要获取一个对象的属性,使用"对象变量.属性名"
person.name;	//'Bobbby'

变量

变量在javascript中就是用变量名表示,变量名由大小写英文、数字、$_组合,但是不能以数字开头,也不能是关键字

动态语言

同一个变量只能用var声明一次,但可以给它赋不同类型的值,例如:

var a=1;
a="1";

静态语言

定义变量时必须指定变量类型,如果赋值时类型不一致,会报错,例如:

int a=1;	//a是整数类型变量,类型用int申明
a='1';		//报错:不能将字符串赋给整数变量

不要把赋值语言的等号等同于数学的符号

var x=10;
x=x+2;		//x=12

使用console.log(x)显示变量的内容

strict模式

javascript设计初,并不强制使用var声明变量,这个设计错误带来了严重的后果:如果该变量没有通过var声明,那么该变量就会自动声明为全局变量
同一个页面的不同javascript文件都有没有用var声明的i,就会造成变量i互相影响,产生难以调试的错误结果
为了修补这一错误,ECMA在后续规范中推出了strict模式,在strict模式下运行的javascript代码,强制通过var声明变量,未使用var就使用,将导致运行错误
启动strict模式就是在javascript的第一行加上

'use strict';
//支持strict模式的浏览器将开启strict模式运行
//不支持会把它当成一个字符串

测试(去掉''成功报错???)
页面测试结果

发布了7 篇原创文章 · 获赞 0 · 访问量 116

猜你喜欢

转载自blog.csdn.net/qq_42713936/article/details/94345178
今日推荐