持续更新,
JavaScript 诞生于 1995 年。由Netscape(网景公司)的程序员Brendan Eich(布兰登)与Sun公司联手开发一门脚本语言, 最初名字叫做Mocha,1995年9月改为LiveScript。12月,Netscape公司与Sun公司(Java语言的发明者)达成协议,后者允许将这种语言叫做JavaScript。这样一来,Netscape公司可以借助Java语言的声势。
1996年3月, Netscape公司的浏览器Navigator 2.0浏览器正式内置了JavaScript脚本语言. 此后其他主流浏览器逐渐开始支持JavaScript.
与网页进行交互的脚本语言,有一定的逻辑性
脚本特点:辅助,简单.即写即所得
1.脚本语言 即写即所得
基于对象 面向对象,同时也支持面向过程
简单
动态性
跨平台性
src:引入外面的js文件 重点
defer async都是异步加载
async 异步加载+代码加载完后 立即触发(执行)
defer 异步加载+页面解析完后 立即触发(执行)
注意:defer和async要结合src使用
charset:设置字符集的编码 gb2310 utf-8(万国码) utf-16
type :表示脚本语言的类型 text/javascript,默认值就是它.
语法:var 变量名称=“值”
1.变量定义(使用var关键字 variable):
var age; //var 是关键字,age是变量名
赋值:
age = 20;
定义的同时赋值:
var age=20;
可以一次定义多个变量:
var name=“zhangsan", age=18,weight=108;
console.log(name);
JS是弱数据类型的语言,弱类型语言的值可以随意被修改,容错性较高, 在赋值的时候才确定数据类型
弱数据类型特点
1.值可以随意修改
2.声明变量不赋值,不会报错(打印undefined)
var b; //temp时啥数据类型?不确定
b = 12; //temp变量是数字类型
b = “hello”; //temp变量变成了字符串类型
//typeof 关键字 查看变量是什么类型
console.log(typeof b);
关键字 : 已经被JS内部使用了的
保留字: 虽然暂时还未被使用, 但将来可能会被JS内部使用
1, 变量名只能是数字,字母,下划线_和美元符$组成;
2, 第一个字符不能为数字(不能以数字开头)
3**, 不能使用关键字或保留字**
4, 严格区分大小写,如:age和Age是不同的变量。但强烈不建议用同一个单词的大小写区分两个变量。
5, 变量命名尽量遵守驼峰原则(驼峰命名法):
myStudentScore(小驼峰) 变量 形参
MyName(大驼峰) 构造函数 类
6, 变量命名尽量见名思意, 可参考下图
Boolean: 布尔类型
Number:数字(整数int,浮点数float )
String:字符串
Object:对象 (包含Array数组 )
特殊数据类型 Null、Undefined
注意: 变量的类型在赋值时才能确定
用来检测变量的数据类型, 对于值或变量使用 typeof 操作符会返回如下字符串:
Undefined数据类型的值为: undefined 未定义
Boolean数据类型的值为: boolean 布尔值
String数据类型的值为: string 字符串
Number数据类型的值为: number 数值
Object数据类型的值为: object 对象或者null
Function数据类型的值为: function 函数
var str="易哈哈哈";
console.log(typeof str);//string 字符串
var weight=70;
console.log(typeof weight);//number 整型 浮点型(小数类型)
var flag=true;
console.log(typeof flag);//boolean true(1) false(0)
var age;
console.log(typeof age);//undefined
var obj=null;
console.log(typeof obj);//object
var a=null;
console.log(a)//null
parseInt() 是把其它类型转换为整型
parseFloat() 是把其它类型转换为浮点型(小数)
Math.round() 四舍五入
如: (78.566) -> 78
// parseInt 转换整型(重点)
// parseFloat 转换浮点型(保留小数点)重点
var num = 12.345;
console.log(parseInt(num));//12
var num = "12.678";
console.log(parseInt(num));//12
var h = "35px";
console.log(parseInt(h));//35
var h = "35.66px";
console.log(parseFloat(h));//35.66
var h = "px355";
console.log(parseInt(h));//NaN 不是一个数字,不能放在前面,否则就不能截取
// isNaN()是数值为false ,不是数值true(掌握)
console.log(isNaN("你好"));//true
console.log(isNaN("99"));//false
console.log(isNaN(99));//false
// 最大值 最小值 了解
console.log(Number.MAX_VALUE);//1.7976931348623157e+308
console.log(Number.MIN_VALUE);//5e-324
// NaN 特殊的值 不是一个数字
console.log(0 / 0);//NaN
console.log("你好" * 100);//NaN
// number
// var num=10;
// var a=NaN;//不是一个数字
// console.log(typeof NaN);//true
// 牢记null派生了undefined
console.log(null == undefined); true
1.其他类型转换为number类型
// 强制转换Number parseInt parseFloat
console.log(Number(str));
console.log(parseInt(str));
console.log(parseFloat(str));
// 隐式转换(- / * %)
var str1 = "200";
console.log(str1 - 0);
console.log(str1 / 1);
console.log(str1 * 1);
console.log(str1 % 201);
// console.log(str1 + 201);//200201
console.log(200 == "200");//true
2.其他类型转Boolean型
1.非空字符串为true 空字符串为false
2.非0为true,0 和NaN为false
3.null 和undefined始终为false
4.对象始终为true,只要不为null
// 2其他类型转Boolean型
// 0false 1true
// Boolean true/false
var str2 = "";//空字符串
console.log(Boolean(str2));//false
var str21 = "你好";
console.log(Boolean(str21));//true
var str22 = "0";
console.log(Boolean(str22));//true
var str23 = " ";
console.log(str23.length);//4
console.log(Boolean(str23));//true
// 字符串转bool类型 有值为true 没有值为false
// 2.数值转Boolean
// 0 和NaN为false 其他的都为true
var num = 0;
console.log(Boolean(num));//false
var num = 1;
console.log(Boolean(num));//true
var num = 2;
console.log(Boolean(num));//true
var num = -1;
console.log(Boolean(num));//true
var num = NaN;
console.log(Boolean(num));//false
// null 和undefined 始终为false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
var obj = {}
console.log(Boolean(obj));//true