一、script标签
1. script 标签写法
<!-- type可以不用写,要写就写对了 -->
<script type="text/javascript"></script>
<!-- 这里type故意写错是为了拿到里面的 h1 去替换上面的来渲染 -->
<script type="text/tpl">
<h1>{{ name }}</h1>
</script>
script 标签要写在 body 下面
2.script 标签可以外部引用
二、Number
1.声明定义:
//字面量声明
var num = 1;
console.log(typeof num);
//数字对象方式声明
var num = new Number(1);
console.log(num+4);
2.数字方法
整数判断
var num = 10
console.log(Number.isInteger(num)) //true
指定返回的小数位数
var num = 5.2641654156
console.log(num.toFixed(2)) //返回两位小数,结果为5.26
3.NaN表示非数字值,isNaN() 判断是否为数字
var num = '5'
console.log(Number(num))
console.log(isNaN(num))
//输出结果为 5 和false
null 和 '''' (空)会被判断为数字
4.js 在进行浮点数计算时会产生误差
var a = 0.1+0.2
console.log(a)
//结果为0.30000000000000004。解决方法为 toFixed() 方法
var b = 0.1+0.2
console.log(b.toFixed(1))
//结果为 0.3
三、String 常用方法
//连接运算符
var address = "xdclass.net",
name = "小滴课堂";
console.log(name + "网址为:" + address);
//获取长度
console.log("xdclass.net".length)
//大小写转换
console.log('xdclass.net'.toUpperCase()); //XDCLASS.NET
console.log('XDCLASS.NET'.toLowerCase()); //xdclass.net
//移除空白
var str = ' xd class.net ';
console.log(str.length);
console.log(str.trim().length);
//获取单字符
console.log('xdclass'.charAt(3)) //l
console.log('xdclass'[3]) //l
//截取字符串
var n = 'xdclass'.slice(1,5);
console.log(n); //dcla
slice(start, end) //start(包含),end(不包含)
//查找字符串
console.log('xdclass.net'.indexOf('s')); //5
console.log('xdclass.net'.indexOf('s', 6)); //6 从第6个字符开始搜索(包含第6个)
//替换字符串
var name = "小滴课堂";
var changeName = name.replace("课堂", "教育机构");
console.log(changeName); //小滴教育机构
//类型转换(将"2022-01-22"时间格式转换为"2022/01/22")
var name = '2022-01-22';
console.log(name.split('-')); //['2022', '01', '22']
var a = name.split('-');
console.log(a.join('/')); //2022/01/22
在类型转换中,split 将字符串转换为数组形式并以 '-' 为间隔将字符串分为三个值'2022' '01' '22',join 再把这个数组转回字符串形式并以 '/' 将三个值间隔开。上述例子中 '-' 如果替换为 '' 就会产生以下结果。
四、Boolean 用法
1.隐式转换
//几乎所有的类型都可以隐式转换为 Boolean 类型
var a = "sdkjgkjsd";
console.log(Boolean(a));
//几乎所有的类型都可以隐式转换为 Boolean 类型 true false String 非空字符串 空字符串 Number 非0的数值 0/NaN Array 数组不参与比较时 参与比较的空数组 Object ✅ undefined ✅ null ✅ NaN ✅当其他类型与Boolean类型对比时,会将其他类型先转换为数值类型再对比。[] 空数组转换为数字是 0 ,[1, 2] 非空是 NaN 。undefined 和 null 转换为数字是 NaN。
2.显式转换
var xd = '' ;
console.log(!!xd); //false
xd = 0;
console.log(!!xd); //false
xd = null;
console.log(!!xd); //false
一个 ! 是把原值取反并转换为 Boolean ,两个 !! 就是原值的 Boolean 值。
五、 基础类型数据-Undefined、Null、Symbol
1.Undefined/Null 这两个基本是同义的
undefined == null //true
//null 是一个表示 “无” 的对象,转换为数值是 0 ;undefined 是一个表示“无”的原始值,转为数值时为NaN。
console.log(Number(null)) //0
console.log(Number(undefined)) //NaN
console.log(Number(1+null)) //1
console.log(Number(1+undefined)) //NaN
2.Undefined
//变量被声明但没有赋值,就等于 undefined 。
var i ; // i undefined
//对象没有赋值的属性,值为 undefined 。
var a = Object(); //a.name undefined
//函数没有返回值默认返回undefined
var x = f(); //x undefined
3.Null
null 表示“没有对象”,即该处不应该有值。
用法:
(1)作为函数的参数,表示该函数的参数不是对象
(2)作为对象原型链的终点
Object.getPrototypeOf(Object.prototype) // null
4.Symbol(es6的语法)生成唯一属性
// 在一个对象中需要增加一个相同的属性名
var xd = { aa: '1' };
var aa = Symbol('aa');
xd[aa] = '2';
console.log(xd);