[TOC]
JS的组成
- ECMAScriot核心语法
- DOM(document object model)文档对象模型,这里面提供了一些方法去操作标签
BOM(browser object model)浏览器对象模型
JS的引入方式
行内式(需要事件)
- 点击我
- 内嵌式
外链式
严格区分大小写 neme NAME
- 数字、字母、下划线、$组成(不能数字开头)name1 my_name $
- 不能命名关键字或者保留字
- 命名要有语义化,可以遵循:
- 小驼峰命名法 scrollWrap myFirstName
- 大驼峰命名发 (帕斯卡命名法)scrollWrap MyFirstName
- 下划线命名法 scroll1_wrap my_first_name
一条语句结束要加上”;”(也可以不写,但是建议写上)
-
变量(装东西的容器)
数据类型有哪些
<script> /* 数据类型有哪些 + 1.原始值类型(基本数据类型,值类型) + number(数值) + string(字符串) + boolean(布尔值) + null + undefined + symbol(唯一值) + biInt(大数) + 2.对象类型 */ // 1.1 number类型 (整数、负数、正数、小数)NaN // NaN (Not a number)非有效数字。 var number1 = 100; var number2 = NaN; // 1.2 string 字符串类型 // 只要是'',"",``包裹着的都叫字符串 var str1 = '100'; var str2 = "xukui"; var str3 = `haha`; // 1.3 boolean 布尔值类型( 只有两个值true/false ) var bool1 = true; var bool2 = false; // 1.4 null(只有一个值 空的) var empty = null; // 1.5 undefined (只有一个值 undefined) // 应用场景:变量只声明,未定义,那就是undefined var emp = undefined; // 1.6 symbol(唯一值) console.log(Symbol()); console.log(Symbol()); // 1.7 binInt // 在js里面是有最大和最小安全整数范围的 var maxInt = Number.MAX_SAFE_INTEGER; var minInt = Number.MIN_SAFE_INTEGER; // 第一种:直接在后面加n var maxNum = 99999999999999n; console.log(maxNum); console.log(); // 第二种:BigInt var num = (BigInt(num)); console.log(BigInt(99875678909876545678987655678)); console.log(BigInt('99875678909876545678987655678')); </script>原始值类型转换
-
- 如果引号里面有数字,那么直接转换
- 如果是非有效数字,NaN
var str1 = '100'; var str1 = '100px'; var str1 = '';//0 var str1 = ' ';//0 var result = Number(str1); console.log(Number(str1)); console.log(result);boolean转换为number
true=1 false=0console.log(Number(true)); console.log(Number(false));undefined转换为number
nudefined=NaNconsole.log(Number(underfined)); console.log(Number(NaN));symbol转换为number
console.log(Number(Symbol())); Uncaught TypeError: Cannot convert a Symbol value to a numberbigInt转换为number
console.log(Number (999n))
String
其他数据类型转换为string类型
直接加引号
var num = 100;
var bool = true;
console.log(Number(num));
console.log(String(num));
console.log(String(bool));
console.log(String(false));
console.log(String(null));
console.log(String(undefined));
console.log(String(Symbol()));
console.log(String(BigInt('999999999999999999')));
Boolean()
其他数据类型抓换为布尔
0、 NaN、''、null、 undefined转换为布尔是false,其他的都是true
var info = 100;
var info = 100.1;
var info = 100.1;
var info = -100.1;
var info = 0;
var info = '100';
var info = '100px';
var info = '0';
var info = '';
var info = ' ';//true
var info = null;
var info = undefined;
console.log(Boolean(info));
转换的其他方法补充
<script>
isNaN() 判断是不是有效数字
var num = 100;
console.log(isNaN(num));//false num(100)是NaN吗? 100是非有效数字吗?
console.log(isNaN(NaN));//true
如果判断的值不是number类型
console.log(isNaN('100'));
console.log(isNaN('100px'));
parseInt() 提取整数部分 从左往右依次查找,遇到非有效数字就停止,如果没有提取到有效数字,那就是NaN。
console.log(parseInt('100px'));//100
console.log(parseInt('100.1px'));//100
console.log(parseInt('px100.1'));//NaN
console.log(parseInt(' 100 100 '));//100
console.log(parseInt('010'));//10
console.log(parseInt('000010'));//10
console.log(parseInt('10101010'));//10
console.log(parseInt(10101010));//10
console.log(parseInt('0.1'));//10
console.log(parseInt(' '));
console.log(Number(' '));
0 1 2 3 4 5 6 7 8 9 A B C D E F
console.log(parseInt('0xf'));//以0x开头 会识别十六进制
parseFloat() 提取小数 从左往右依次查找,遇到非有效数字就停止(不包含第一个小数点),如果没有提取到有效数字,那就是NaN。
console.log(parseFloat('10.1.1'));
console.log(parseFloat('010.1'));
console.log(parseFloat('10.0'));
console.log(parseFloat('10.10'));
console.log(parseFloat(''));//NaN
console.log(parseFloat(' '));//NaN
console.log(parseFloat(' 10'));//10
0.1+0.2 不等于 0.3?????浮点数精度丢失
toFixed()
var num = 0.1065151;
console.log(num.toFixed(2));
console.log(num.toFixed(3));
console.log(num.toFixed(3));
</script>
null 和 undefined
null表示没有,即该处不应该有值:
1) 在我们不确定一个变量具体数据类型的时候,我们可以先赋值为null,后面可以再给具体的值。。
2) 作为对象原型链的终点。
3) 获取 DOM 获取不到的时候。
undefined表示缺少值,即此处应该有值,但没有定义:
1)定义了变量没有给值,显示 undefined。
2)定义了形参,没有传实参,显示 undefined。
3)对象属性名不存在时,显示 undefined。
4)函数没有写返回值,即没有写return,拿到的是 undefined。
5)写了return,但没有赋值,拿到的是 undefined。
