1.介绍
javascript与java无关,Java诞生于1991年,98年左右特别流行,为了搭载Java流行的顺风车,取名Javascript。主要是为了解决表单验证(dom,js -> html)的问题。
2.javascript组成
java -> jvm -> sun(oracle)
js -> 浏览器 -> ie、firefox、google chrome、safari、opera
3.注释
js
**// 单行注释
/* 多行注释
*/**
html
<!--注释-->
css
/*注释*/
4.关键字与保留字
关键字是js中御用的标识符,表达了特定了含义
var typeof class
保留字是js在未来可能会用到的标识符,将来可能要表达特定含义
5.变量
(1)使用:
var a; // 通过var关键字声明一个变量,变量名
a = 2; // 初始化, var a = 2;
console.log(a); // 使用
(2)弱类型
Java属于强类型语言
int a ; //1. 变量的数据类型在声明的时候确定
a = 3;
a = true; //2. a为int类型。无法将boolean赋值给a
js属于弱类型语言
var a; // 1. 变量的数据类型在声明的时候无法确定
a = 3; // 赋值的时候才能确定数据类型
typeof a; // number
a = true; //2. a的数据类型可以随着赋值不同而发生变化
a = 4.5;
typeof a; //获取a的数据类型, number,数字不做细分
(3)奇葩的var
- 可以在变量声明之前访问变量
console.log(a); // undefined
var a = 3;
var声明的变量会被提升。在执行环境中,执行代码之前,会将所有的var声明的变量提升到所有代码执行之前
var a;
console.log(a);
a = 3;
- 变量可以重复声明
var a =3 ;
console.log(a);
var a = "hello world";
console.log(a);
- 没有局部作用域
function foo(){
var a = 3;
if(true){
var b = 4;
}
console.log(b);
}
foo();
6.数据类型
一.基本数据类型【简单数据类型】
- Number
var a = 3;
var a = 011; // 八进制
var a = 0x11; // 十六进制
var a = 3.2;
var a = 'a'/2; // NaN not a number
var a = 2/0; // Infinity 无穷大
- Boolean
var a = true;
var a = false;
- String
var a = "hello world"
var a = 'hello world'
var a = `hello world`
var a = "hello 'terry', welcome"
注意:
1. 引号的嵌套需要间隔
2. 字符串拼接变量使用加号
var name = "terry"
var a = "hello "+name+",welcome my house"
- Null
var a = null;
//表示空对象,目前为空,将来的某个时刻为对象
typeof null //object
- Undefined
var a;
var a = undefined;
二.引用数据类型【复杂数据类型】
变量中实际保存的是值在堆中引用地址(指针)
除了基本数据类型之外的所有其他数据类型都是引用数据类型
所有的引用数据类型的值都可以调用Object.prototype中的方法
- Object
var a = {name:"terry",age:12,gender:"male"}
- Function
- Array
var = ["terry","larry","tom","jacky"]
RegExp
var = /\d{11}/ig
...
基本数据类型与引用数据类型在内存中的表现
栈区:后进先出,栈区用来保存变量的值,如果变量是基本数据类型,变量的值就保存在栈区;如果变量是引用数据类型,引用地址(指针)保存在栈区
堆区:用来存放引用数据类型的值