一、js基础
1.外部引入js
<script src="a.js" async defer></script>
<script>
...
</script>
ES6模块化引入js
import Box from "./js/Box.js";
2.行内js的写法
<button onclick="alert('aaa')">按钮</button>
<a href="javascript:alert('aaa')">超链接</a>
点击空连接不会刷新页面的方法
<a href="javascript:void(0)">超链接</a>
3.三种弹窗
三个弹出框在弹出时不继续执行后面的语句,等待用户操作完成后继续
alert("aaa");//弹出框
confirm("你好");//点击确定时返回true,否则返回false
prompt("请输入你的年龄","18岁");//输入弹出框,确定后会返回输入的内容
二、变量常量
1.变量的定义
var a=4;
var b=5;
var fuckYou=520;
//变量命名为小驼峰
//临时变量或者参数,起名时用_开始
//常量定义
const FUCK //常量定义后名称大写
2.数据类型
基础类型:string(字符型),number(数值型),Boolean(布尔型),undefined,null
复杂类型:object(对象)
前五种基础类型都存储在栈中,对象存储在堆中。
string字符类型
var str1 = "1";
var str2 = '1';
var str3 = `1`;//es6可以用``来定义string类型
var str4 = "这个'新的'鞋子价格不错";
var str5 = '{"a":4,"b":"10"}';
number 数值类型
NaN是number类型,且NaN不等于NaN
var num1 = 1;//正整型
var num2 = -1;//负整型
var num3 = 1.3;//浮点型
var num4 = 056;//8进制数值,0起头,数值不能大于7
var num5 = 0xFF;//16进制数值,0x起头,单个数值不能大于F
var num6 = 1.2e+3;//科学计数法
var num7 = 1.2e-3;//科学计数法
Boolean 布尔类型
var bool1=true;
var bool2=false;
undefined 未定义
值和类型相同
var und1;
var und2=undefined;
console.log(und3);//报错 und3 is not defined
console.log(typeof und1);//undefined
console.log(typeof und2);//undefined
null类型
null的类型object型
var nu = null;
console.log(nu);//null
console.log(typeof(nu));//object
console.log(undefined == null);//true
console.log(undefined === null);//false
存在栈中,修改的是值
var num=3;
var num1=num;
num=10;
console.log(num1);//3
以上所描述的类型都存储在栈中
object对象类型则是存储在堆中的
object 对象类型
- 对象包含了属性名和属性值还有方法,对象可以包含对象
- 属性名叫做键(key),属性值叫做值(value) 键值对
- 对象就是以键值对的形式存储数据的。
var obj = {
// 属性
id: 4001,
name: "iphone11",
price: "4999",
getSum: function () {
}
};
console.log(typeof obj);//object
变量名存储的是引用地址,obja=objb相当于将objb的引用地址赋给obja,则b内属性更改a也会相应的更改
var obj = {
a: 1,
b: 2
}
var obj2 = obj;//将引用地址赋值给obj2
obj.a = 10;
console.log(obj2.a);//10
存在堆中,修改引用地址值的内容,地址不会发生改变
var obj = {a:1};
var obj1=JSON.parse(JSON.stringify(obj));
var obj={a:10};
console.log(obj);//{a:10}
console.log(obj1);//{a:1}