Skip to content

第三章 基础知识

变量不存在时打印会出现undefined

抛出错误:

javascript
if (typeof variable == "undefined") {
throw new Error("content")
}

instanceof(判断prototype):当判断object对象时使用

js
console.log(variable instanceof Array/Object)

字符串简写&字符串自变量

js
        let text_document = "\"内容1\"\"内容2\"\"内容3\"";
        console.log(text_document);

转换符

\xxx

在html里中,\t只能显示一个,若显示多个空格,使用:

javascript
" "

字面量

javascript
       let obj = [
            {title:"RGB"},
            {title : "GRC"},
            {title : "CMD"}
        ];
        function show() {
            return `
            <ul>${obj.map(item => "<li>"+ item.title +"</li>").join("")}</ul>
            `
        }
        document.body.innerHTML = show()

基本形式:

javascript
${}

可以添加基本上所有的表达式。

字面量里可以套字面量


★字符串

javascript
toUpperCase()  	大写模式
toLowerCase()	小写模式

去除空白: trim()
取编号:charAt(num)
截取 .slice(num)
    .substring(num)
	.substr(num)   用这个.    第二个参数选择截取数量
num指从哪里截取
检索:indexOf("str")    返回数字
	 lastIndexOf("str") 				从后向前查找
	 includes("str")   返回布尔类型

     starsWith("str")    是否以str为开始
     endsWith("str")
替换: replace(替换对象,替换内容)
重复: repeat(num)
转换: ①隐式转换  参与其它数的运算   转数字: *1 转str:+"
	  ②直接转换
      parseInt/String/toString()
		parseint只能转换以数字开头并且添加其它类型的数据
        string只能字符串数字转换成数字
        string无小数位数
        toString()是方法
连接:(array) .join("")  以“”形式进行连接
返回原型: valueOf()

连接数组:join()

通过 new方法建立的variable都是object类型

标准: 声明对象 ==》 调用(类/构造函数)方法


★布尔

object在boolean中是true(【】和{}转换过来都是真)

boolean对象中转换为数值类型时,true为1 false为0.

判断中会转换为数值类型,而表达式中不会转换

字符串中的数字转换为数值,就是数值...

空数组转换为数值也是0

逻辑:(xxx == ooo) ==> (xxx=>数值 000==>数值, x数值与0数值比较)

比较和转换是两件事。

javascript
数值类型: 	0为假  		!0为真
字符串类型:  	 空字符串为假   !空字符串为真
引用类型:		[]和{}为真

boolean转换:

1:Boolean()

2:variable = !!variable;

javascript
let number = 0;
number = !number ==>干了两件事: 1 number转换为boolean类								   型,
							   2 将其取反
console里输出为:true

而大多数时候我们只是将其转换为boolean,所以:
number = !!number
console里输出为:false

用.语法调方法时会先转换为对象再调用,也就是说非引用类型是不能直接调用方法的。

javascript
判断是否为整数: Number.isInteger(num)  【构造函数的静态方法
四舍五入:toFixed(num_s) num_s表示小数留多少位 (0时即取整)

其它

NAN不可与NAN比较

javascript
判断是否为NAN:Number.isNaN(num);
			Object.is(num,type)   type为检验的类型

表单类型设置为只能输入数字,可以减少后续转换数据的麻烦。


数字转换:

javascript
parse系列转换

JS是很开放的语言


★Math库

javascript
取最大:Math.max()
取整: ~.ceil() 向上取整
	  ~.floor()向下取整
舍入:~.round()
随机:~.random()     0-1间的数    向下取整取到的是(a,b-1)

不能转换数组,所以需要转换。简单的转换通过展开语法:
let arr = [1,5,48,79,5,13,2,1];
console.log(Math.max(...arr));
或者通过apply方法:
console.log(Math.max.apply(Math,arr))
javascript
取区间的时候,比如我要取
let students = ["第一", "第二", "第三", "第四", "第五"];
中的第三到第五,那么换成索引,区间为:
(2,4)

转换算法:(2,4+1) ==> [2,5]
let index = min + Math.floor(Math.random() * (students.length - 2));

console.log(studens[index]);

随机获取:

javascript
function ran_get(array, start = 1, end) {
        //     start--;
        //     end = end || array.length;
        //     const index = start + Math.floor(Math.random() * (end - start));
        //     return array[index];
        // }

★时间戳

1 使用new date() 方法创建objcet(而不是date()创建字符串),让其*1:

2 number(date)

3 date.valueof

4 date.getTime

javascript
let time = new Date(); ==>对象
let time = Date(); ==>字符串

time * 1  ==>返回时间戳(只能是new Date()创建)

时间戳是1970年到现在经历的毫秒数

通过字符串:

javascript
const time = new Date("1990-9-22 3:22:22")
const time = new Date(1990,2,22,13,22,19)

const param = [1990,2,22,13,22,19]
const time = new Date(...param)

时间戳转换为ISO日期:

javascript
直接把时间戳扔到Date里:
let time = new Date(timestamp)

日期获取:

javascript
function timeFormat(date,format="YYYY-MM-DD HH:mm:ss") {
            const config = {
                YYYY:date.getFullYear(),
                MM:date.getMonth() + 1,
                DD:date.getDate(),
                HH:date.getHours(),
                mm:date.getMinutes(),
                ss:date.getSeconds()
            }
            for (const key in config) {
                format = format.replace(key,config[key]);
            }
            return format;
        }