初识JavaScript
一、JavaScript的概述
JS是一种具有函数优先(在计算机的认知中函数在代码的第一行)的轻量级(使用计算机的服务较少,所以一般相关应用的发布时间短和运行性能高),解释性或即时编译型的编程语言(翻译一句执行一句)。JavaScript基于原型编程、多范式的动态脚本语言,并支持面向对象、命令式和声明式(如函数式编程)风格。不依赖于操作系统,仅需要浏览器的支持,具有跨平台性。他是一个弱语言(没有绝对的语法,他的数据类型不是有对应的修饰符来定义,而是根据对应的值来定义,值什么类型变量就是什么类型)。常作为开发Web页面的脚本(可以理解为一个指令集和的文本,计算机根据脚本写的代码执行任务)语言。
由三个内容构成:一、BOM(浏览器对象模型 操作浏览器)。二、DOM(文档对象模型 操作html文档的)。三、ECMAScript(语法规范es3(兼容各大主流浏览器)es5(兼容普通版本浏览器)es6(兼容相关的高版本浏览器))
二、JavaScript书写方式
1、内嵌式
<div onclick="alert(123)">点我弹窗</div>
2、内联式
<script>
var a = 1
var b = 'a'
alert(a)
</script>
3、外联式
<script src="./js/index.js"></script>
三、变量定义
var 变量名 = 值
var a = 2
变量得到命名规范:
- 见名知意
- 不能使用关键字或保留字
3.驼峰命名法(第一个首字母小写,之后的首字母大写)
var userName = 值
4.不能以数字开头(可以由数字,字母,下划线和$符号组成)
var user_name = 值
四、数据类型
基础数据类型(值类型 不能变得(常量)):
- 数值类型number var number = 2
- 字符串类型string var str = ‘字符串类型’
- 布尔类型boolean(true真false假)
var isTrue = true
4.未定义类型undefined(当前未给值) undefined是null的派生
var a
console.log(a)
5.空类型null只有在null值的情况下才为null类型
var isNull = null
console.log(isNull)
引用数据类型(对象地址分配的 可以变的):
Object(对象) array(数组) function(函数) .....
判断数据类型: typeof 变量 //返回对应的数据类型
var num = 10
var str = '哈哈'
var i = true
var a
var b = null
console.log(typeof(num))
console.log(typeof(str))
console.log(typeof(i))
console.log(typeof(a))
console.log(typeof(b))
console.log(typeof typeof(b))
typeof null 返回的是一个object的字符串,其他返回的是对应的类型的字符串
function 返回的是function ,object返回的是object ,array返回的也是一个object
五、注释
// 单行注释 快捷键Ctrl + /
/*
多行注释 快捷键shift + alt + a
*/
六、类型转换
数据类型大的转小的是显性转换,小的转大的是隐式转换
(string > number > boolean > undefined)
任意类型转字符串:toString方法调用(undefined不能调用)
String方法调用
var num = 10
var str = num.toString()
var str1 = String(num)
console.log(typeof(str))
console.log(typeof(str1))
任意类型转number类型:使用number方法转换
使用parseInt或者parseFloat(截取)
var str = '123'
var num = Number(str)
console.log(num)
var str1 = '12.1a3a'
var num1 = Number(str1)
console.log(num1)
console.log(typeof(num1))
var num2 = parseInt(str1)
console.log(num2)
var num3 = parseFloat(str1)
console.log(num3)
var boo = true
var num4 = Number(boo)
console.log(num4)
var a
var num5 = Number(a)
console.log(num5)
var b = null
var num6 = Number(b)
console.log(num6)
任意类型转number类型无法转换会出现NaN ,NaN属于数值类型
null转number结果为0 ,undefined转number结果为NaN
isNaN专门判断当前是否是NaN类型,出现NaN返回true 没有返回false
console.log(isNaN(NaN))
转换为boolean类型:Boolean方法
var str = 'kakf'
console.log(Boolean(str))
var num = 0
console.log(Boolean(num))
console.log(Boolean(undefined))
console.log(Boolean(null))
string类型转boolean非空就是true 空字符串为false
number类型转boolean 非0和非NaN就是true , 0和NaN为false
undefined和null转换boolean都是false
number的特殊值:NaN 当你需要转为number类型的时候转换不成功出现的值 无穷大 Infinity
七、运算符及表达式
(1)、算数运算符:+ - * / % ++ --
++自增
--自减
++前置和后置的区别:
前置先执行 先++再执行其他的代码
后置后执行 先走了对应的其他代码以后再执行++操作
取余的规则:
大的数值取余小的数值得到是余数
小的数值取余大的数值得到的是他本身
字符串进行加法运算会进行字符串的拼接 得到的是字符串
其他的任意操作都会先转为对应的number类型再进行运算
NaN做任意运算返回的结果都是NaN
- 、逻辑运算符:&& || !
&&逻辑与:两个都为true,结果方为true,否则为false
||逻辑或:只需其中一个为true,结果为true
!逻辑非: 取反操作,真变假,假变真,返回的结果是一个boolean类型
- 、条件运算符: > < = >= == === != !==
返回的是一个boolean类型的值(true或false)
1、undefined==null为true,undefined===null 为false
2、字符串和字符串相比较那么对应的比较的ascii码(先比首字母,大写字母比小写字母要小,排在前面比后面的要小)
3、在对应的非数值的比较上会自动转为数进行比较
4、NaN==NaN为false 在正常比较中没有取反符号的情况下出现NaN就是false
5、恒等是基于==之上的 ==为false对应的恒等必定为false(==只比较值 ===要比类型)
(四)、赋值运算符:= += -= *= /= %=
(五)、位移运算符:<< >>
位移运算是将对应的数值转为二进制进行移位运算(将一个数值转为二进制使用除二取余法)
console.log(2<<2)
八、进制转换
常用的进制分为 2进制 4进制 8进制 16进制(颜色设置 最的值为f)
将对应的10进制转为其他进制得到的是字符串 toString
将其他进制转为10进制得到就是数值 parseInt
var p = 8
console.log(p.toString(2))
console.log(p.toString(16))
var str = '1f'
console.log(parseInt(str,16))
var o = 1000
console.log(parseInt(o,2))