JavaScript的概述:
JavaScript是一个轻量级,单线程,弱语言的脚本语言(侵入 实现xss攻击)。(有浏览器的地方就能解析对应的JavaScript(通过v8引擎)) 。
注:单线程:一个一个线程解析,不能同时解析两个。
弱语言:他没有固定的类型划分 你给定的值是什么类型 他就是什么类型。
JavaScript的构成:ECMAScript (基本语法及相关对象),DOM(文档对象模型 ,操作HTML) , BOM(浏览器对象模型 ,操作浏览器)。
JavaScript的入门:
1.书写在script标签里面(内容少时推荐)
<script> //语句书写 console.log('hello world') </script>
2.书写在js文件里面(推荐)
定义一个js文件(index.js) console.log('hello world') 引入这个js文件 <script src="./index.js"></script>
3.书写对应的事件属性里面(少用)变量
<a href="javascript:void()">去百度</a> <a href="#" onclick="alert('hello world')"></a>
变量:
1.变量定义(使用 var 关键词声明)
var number = 10
2.变量名的书写(见名知意 区分大小写)
a.只能是对应的字母或者数字或者下滑线等字符(不能以数字开头)
b.一般采用驼峰命名法(helloWorld 采用单词拼接第一个单词首字母小写 其他单词首 字母大写)
c.不能使用关键词(占用之前的关键词的引用空间)
关键字:
d.普通变量首字母小写 常量全大写
3.注释
单行注释 //... (VS Code 快捷键 Ctrl + /) 多行注释 /*... */ (VS Code 快捷键 alt + shift + /)
数据类型(值类型 基本数据类型):
number类型(所有的数值)
字符串类型 String (引号里的内容都是字符串)
boolean类型 (true false)
null 空类型 (值为null值的情况)
undefined 未定义 (未赋值)
typeof:查看变量对应的数据类型
(基本数据类型返回的是对应的类型名 null类型返回object)
console.log(typeof number); // 控制台显示number类型
类型转换:
1.(大转小)显示转换,string ->number
number方法(直接转number类型)
ParseInt方法(转整型)
ParseFloat方法(转小数)
var str = "112a3.12a" console.log(Number(str)); // 当你将一个字符串转换为数值的过程中无法被解析就会出现NaN (a无法转换成数值) console.log(parseInt(str)); //112 遇到a无法解析,就显示前面的数值 console.log(parseFloat(str)); //112 遇到a无法解析,就显示前面的数值 注:undefined转成Number类型也是NaN
2.(小转大)隐式转换,number类型转为string类型 (string>number 隐式转换 toString方法)
//将对应number类型转为string类型 var number = 123 var str = number1.toString() ; // “123” 字符串
3.isNaN :判断是否为NaN
是 ->true 否 ->false var a = 1 console.log(isNaN(a)); //false var str ="12ab" console.log(isNaN(str)); //true
4.无穷大 无穷小(Infinity)
//无穷大 var max = Infinity //无穷小 var min = -Infinity
5.将字符串转为对应的boolean类型
空字符串,0,NaN,undefined,null ->false 其余为true
运算符和表达式:
1.算术运算: + - * / % ++ --
自增和自减的前置和后置的区别 :
前置先执行对应的++(--),再执行对应的代码
后置先执行对应的代码,再执行++(--)
2.逻辑运算 : && 与(同true则为true) || 或 (有true就是true) ! 非(取反)
3.比较运算 : > < >= <= == != ===(全等 俩个类型和对应的值一模一样)
4.赋值运算:= += -= /= *= %=
5.位运算(转为二进制再进行位的变化运算):>> 右移 << 左移 ~~ 去掉小数
console.log(2<<2); // 十进制 2 -> 8
6.计算顺序:括号,乘除取余,加减,比较运算,逻辑运算,赋值运算。
7.三元运算符(三目运算符) :
表达式(boolean类型表达式)? true的内容 :false的内容
var a = 100 var b = 200 a>b?100:200 //200 '123a'/100?'hello':'hi'//hi
8.保留几位小数的方法 toFixed
var number1 = 3 var number2 = 10 // 小数和整数的位数都是16位,超出不能显示 console.log(number2/number1); // 3.3333333333333335 // 保留小数(方法会优先调用) 转成字符串 console.log((number2/number1).toFixed(3)); // 3.333