入门
- JavaScript代码通常放到<head>标签中
- 单独做.js文件,通过<script src="..."></scipt>引入
如何运行JavaScript
- 要让浏览器运行JavaScript,必须先有一个html页面,html页面中引入JavaScript,然后,让浏览器加载该HTML页面,就可以执行JavaScript代码。
基础语法
- var用来声明变量,每个语句以;结束(不强制要求)
- {...}用来编写语句代码块,注意花括号{...}内的语句具有缩进,通常4个空格。
- 注释与Java一致 单行注释/多行注释
var x = 1; // 完整的赋值语句
// 代码块
if (2 > 1) {
x = 1;
y = 2;
z = 3;
}
数据类型
- Number描述数字,不区分整数与浮点数(十六进制使用0x前缀和0-9,a-f表示,它们和十进制的数值完全一样)
- Number可以做四则运算,规则与数学一致
1 + 2; // 3
(1 + 2) * 5 / 2; // 7.5
2 / 0; // Infinity
0 / 0; // NaN
10 % 3; // 1
10.5 % 3; // 1.5
10%3 = 1 // %是求余运算
- 字符串是以单引号或者双引号括起来的任意文本 同步Java字符串
- 布尔值 一个布尔值只有true false两种值 (! 非运算)
Javascript允许对任意数据类型做比较
false == 0 // true
false === 0 // false
// &&运算是与运算,只有所有都为true,&&运算结果才是true:
true && true; // 这个&&语句计算结果为true
true && false; // 这个&&语句计算结果为false
false && true && false; // 这个&&语句计算结果为false
// 第一种 == 会自动转换数据类型,再比较 而=== 不会转换数据类型(全等=数值+类型),数据类型不一致的话,返回false(NaN与其他值都不相等,包括自己 NaN == NaN//false)
// ||运算是或运算,只要其中有一个为true,||运算结果就是true:
false || false; // 这个||语句计算结果为false
true || false; // 这个||语句计算结果为true
false || true || false; // 这个||语句计算结果为true
// !运算是非运算,它是一个单目运算符,把true变成false,false变成true:
! true; // 结果为false
! false; // 结果为true
! (2 > 5); // 结果为true
-
null (空的意思 同Java) undefined 未定义的意思 事实表明,这并没有什么卵用
-
数组 Javascript的数组可以包含任何数据类型,用[ ]表示,元素之间用,分隔
创建数组的方式:[1,2,"hello",null,true] 或者 new Array(1,2,3)
数组的元素通过索引来获取 索引初始值为0
var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined
- 对象 Javasricpt对象是由一组 键值组成的无序集合
var person = {name : "binbin",age : 20};
// 对象的键都是字符串类型,值可以是任意类型
// 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言
var value = {
name : "diudiu",
age : 10
};
// 获取一个对象的属性,我们用 对象变量.属性名 的方式
value.sex;
value.sex = 0;
delete value.age;
console.log(value);
// 判断一个属性是否存在(可以获取到继承的(Object))
"name" in value;
// 判断本身是否还有这个属性
value.hasOwnProperty("sex");
//删除属性
delete value.age;
### strict模式
* JavaScript设计之初,并不强制要求用var申明变量,如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
~~~
i = 10;// i现在是全局变量
~~~
* 在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。
~~~
'use strict';
~~~
### 条件判断
* 同Java同步(JavaScript)把 null,undefined,0,Nan 和空字符''视为false,其他一概视为true
## 循环
* for循环同步Java
### 关于集合
~~~
var m = new Map();
m.set(name, "lonawang");
m.has(name);
m.delete(name);
console.log(m.get(name));
var s = new Set();
var o = [1, 2, 3];
for (var e of o) {
console.log(e)
}
var mMap = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
// mMap.forEach(function (key2, value2, map) {
// console.log(value2 + " --- " + key2 + " --- " + map.values())
// }
// );
var a = ['A', 'B', 'C'];
a.forEach(function (element) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
console.log(element);
});
~~~
### 数组
* var arr = [1,2,3];
arr.push(4); // 现在arr的值为 [1,2,3,4]
接受一个或多个参数,并把它“推”入到数组的末尾。
* .pop() 函数用来“抛出”一个数组末尾的值。我们可以把这个“抛出”的值赋给一个变量存储起来。
var oneDown = [1, 4, 6].pop(); //现在 oneDown 的值为 6 ,数组变成了 [1, 4]。
* shift() 它的工作原理就像 .pop(),但它移除的是第一个元素
* unshift(移入)一个元素到数组的头部
用起来就像 .push() 函数一样, 但不是在数组的末尾添加元素,而是在数组的头部添加元素。
var myArray = [["John", 23], ["dog", 3]];
myArray.unshift(["Paul", 35]);
网友评论