JavaScript的概述
诞生于1995年LiveScript 后更名为JavaScript,JavaScript是一个轻量级的语句、单线程的语言(单线程,即同一时间只能做一件事情。)、弱语言(无固定的类型划分 给定的值是什么类型,他就是什么类型)、脚本语言(侵入 实现xss攻击),有浏览器的地方就能解析对应的JavaScript
JavaScript包含的内容
JavaScript的构成为三方面,ECMAScript (基本语法及相关对象 es3 es5 es6 es7 ...) , DOM(文档对象模型 操作HTML) , BOM(浏览器对象模型 操作浏览器)
JavaScript的入门
书写方式
1.书写在script标签里面(一般会用到的)
<script>
//语句书写
console.log('hello world')
</script>
- 书写在js文件里面(推荐)
定义一个js文件(index.js)
console.log('hello world')
引入这个js文件
<script src="./index.js"></script>js
- 书写对应的事件属性里面(比较少用)
<a href="javascript:void()">去百度</a>
<a href="#" onclick="alert('hello world')"></a>
变量名的书写(见名知意 区分大小写)
1.只能是对应的字母或者数字或者下滑线等字符(不能以数字开头)
2.一般采用驼峰命名法(helloWorld 采用单词拼接第一个单词首字母小写 其他单词首字母大写)
3.不能使用关键词(占用之前的关键词的引用空间)
4.普通变量首字母小写 常量全大写(const)
变量定义(用var来生明)
//var 变量名 = 值
//如:
var name_one = 10
数据类型(值类型 基本数据类型)
number 类型:(所有的数值)
string类型:字符串类型 (单引号、双引号都是字符串)
Boolean类型 :(true false)
null空类型 :(是null值的情况)
undefined :未定义 (当前没有给值)
object :(对象类型 引用数据类型)
使用typeof来查看对应的类型(基本数据类型返回的是对应的类型名 null类型object)
//类型查看 typeOf 查看对应的类型的 null显示的是object (undefined是对应的null的对象扩展)
console.log(typeof number1);
console.log(typeof bool);
console.log(typeof un);
console.log(typeof nl);
console.log(typeof str);
类型转换
number类型转为string类型(隐式转换 toString方法)
//将number类型转为string类型
var str = number1.toString()
string转为number (显式转换)
1.Number方法(直接转number类型)
2.使用parseInt方法(转整型)
3.使用parstFloat方法 (转小数)
var str2 = "2021.1a2a"
console.log(Number(str2));//输出为:NaN
//当你将一个内容转为的数值过程中无法被解析就会出现NaN
//从前到后拿出里面的数值 前面没有数值变成NaN
console.log(parseInt(str2)); //输出为:2021
console.log(parseFloat(str2));//输出为:2021.1
isNaN 是NaN返回true不是返回false(not a number)
var a = 10
console.log(isNaN(a)) //false
var str = 'abc'
console.log(isNaN(Number(str)))//true
无穷大 无穷小(Infinity)
//无穷大
var max = Infinity
//无穷小
var min = -Infinity
将字符串转为对应的boolean类型
Boolean方法 转为布尔类型
var str = "abc"
//字符串转为boolean类型 非空就是true 空字符串表示false
var b = Boolean(str) //true
var b1 = Boolean('') //false
将number转为布尔类型
var number1 = 10
//number转布尔 非0和非NaN则为true NaN和0就是false
console.log(Boolean(number1))//true
console.log(Boolean(0))//false
console.log(Boolean(NaN))//false
将undefined和对应的null转为boolean(false)
var un
console.log(Boolean(un)) //false
console.log(Boolean(null)) //false
将boolean类转为number类型 (false 0 true 1)
console.log(Number(true)) //1
console.log(Number(false)) //0
将对应的undefined和null转为number
var un
console.log(Number(un)) //NaN
console.log(Number(null)) //0
运算符和表达式
算术运算
+ - * / % ++ --
//自增和自减的前置和后置的区别
//前置先执行对应的++(--) 再执行对应的代码
//后置先执行对应的代码 再执行++(--)
逻辑运算
&& 与(同true则为true) || 或 (有true就是true) ! 非(取反)
比较运算
> < >= <= == !=
===//(全等 俩个类型和对应的值一模一样 这个俩个是一个东西)
赋值运算
= += -= /= *= %=
var j = 10
j+=100 //j=j+100
j/=10 //j=j/10=11
j*=5 //j=j*5=55
console.log(j);
三元运算符(三目运算符)
//表达式(boolean类型表达式)true的内容 :false的内容
var a = 10
var b = 20
a>b?10:20 //20
'123a'/10?'hello':'hi'//hi
number对应的方法
保留几位小数的方法 toFixed
var number1 = 3
var number2 = 10
//默认的大小16位 整数位也是16位 超出不能显示(问题)
console.log(number2/number1);
//保留小数(方法会优先调用) 转成字符串
console.log((number2/number1).toFixed(3));