一、jsScript的相关知识与组成
- ECMA:国际标准化组织(欧洲计算机制造商协会)
- ECMAScript和javaScript的关系:前者是后者的规格,后者是前者的实现
- javaScript的组成:
- ECMASCRIPT:定义了javascript的语法规范,描述了语言的基本语法和数据类型
- BOM:游览器对象模型,有一套成熟的可以操作游览器的API,通过BOM可以操作游览器(eg:弹出框,游览器跳转)
- DOM:文档对象模型,有一套成熟的可以操作页面元素的API,通过DOM可以操作页面元素(eg:多个idv,少个div)
二、JS的书写位置
- 行内式:详解如下
- 内嵌式:将<script></script>标签放置于body结束之前,在标签写js相关代码
- 外链式:外链式 js代码只要引入了html页面,就会在页面打开的时候直接触发
新建一个.js 后缀的文件,在文件内书写js代码,把写好的js文件引入 html页面
三、变量
- 值变化的量
- 本质上是内存中的一个存储单元,理解为一个容器
- 变量定义语法:var 变量名称
- 变量的赋值 score=100
- 访问变量值 console.log(score) 控制台显示变量名
- 变量名命名
规则:
1.字母,数字,下划线组成
2.不能数字开头
3.不能是关键字(特定意义的单词)
4.不能是保留字(将来有特殊用处的单词)
规范:
1.语义化
2.驼峰命名规则
3.不能使用中文 - 内存结构
1.栈区域和堆区域
2.变量本质上是内存中的一个存储单元
内存结构图
四、数据类型
定义:变量值的类型
数据类型分类:基本数据类型和复杂数据类型
- 基本数据类型
- 数值类型:Number(所有的数字)特殊的数字类型--NAN(not a number) 非数字值
- 字符串 String eg:"helloworld" 'helloword' `helloword`
- 布尔类型 Boolean true 成立(真) false 不成立 (假)
- 空类型 Null 类型名为 Object
- 未定义的类型 Undefined
- 判断数据类型
方法一:程序判断
typeof 变量名 typeof(变量) ==》返回数据类型
方法二:控制台显示数据类型
console.log(变量) console.log(变量1,变量2...) console.log('字符串')
方法三:isNaN函数
isNaN函数主要用于检查其参数X是否是非数字值返回true,否则返回false
注:检查的值是数值形字符串会自动转为数字,再判断
eg:console.log(isNaN('jack')) ===>结果为ture
console.log(isNaN('100')) ===>结果为false
五、数据类型转换
- 其他类型转换为数字类型
- 转Number类型 eg:var message='100' Number(message) ===>100 var a='' //空字符串 Number(a) ===>0
- ParseInt() eg:ParseInt('100') ===>100 特点:1.从左向右转换 2.遇到数值字符串为数值,遇到非数值结束转换,如果第一个为非数值,结束输出为NaN 3.取整
- ParseFloat() eg:ParseFloat('10.98') ===>10.98 变量名.toFixed(要保留的小数点)
Number(true) ===>1 Number(false) ===>0 Number(null) ===>0 Number(undefined) ===>NaN
- 其他类型转字符串
- String(100) ===>'100' 转为对应的字符串表达
- 变量.toString() 注:有一些数据类型不能使用toString()方法,例如:undefined和null
- 使用加法运算 :+在javascript有两层含义
①连接符 eg:'hello'+'world' ===>'helloworld' 只要加号任意一边字符串,就表示连接符
②算术运算符加法运算
- 其他类型转布尔型
- Boolean(变量),在js中,0,null,undefined,NaN转为布尔型都为false ,其他转为布尔型都为true
六、运算符
- 算数运算符:+ - * / %(取余) 除了加法都转数字
-,*,/,%会执行相应的的运算,也会自动把两边都转为数字再运算(隐式类型转换)
+:①只有符号两边都是数字才会进行加法运算
②只要加号任意一边字符串,就表示连接符(隐式类型转换)
- 赋值运算:
① = 就是把符号右边的值赋给左边的变量名
②+= eg:a+=10 等价于 a=a+10
③-= eg:a-=10 等价于 a=a-10
④*= eg:a*=10 等价于 a=a*10
⑤/= eg:a/=10 等价于 a=a/10
⑥%= eg:a%=10 等价于 a=a%10
- 比较运算符:
①== 比较符号两边的值是否相等 (比较的值为boolearn型)
②=== 比较符号两边的值和数据类型是否都相等 (比较的值为boolearn型)
③>, >=, <, <=, != ,!==
!= 比较符号两边的值是否不等 eg:1!='1' ===>false
!== 比较符号两边的值和数据类型是否都不等
- 逻辑运算符:
①&& 逻辑与 同为真则为真
true && true ===>true
true && false ===>false
注:短运算:false && true ===>false
逻辑与运算时,如果左边为false,右边不参与运算
②|| 逻辑或 同为假则为假
true && false ===>true
③ ! 非真则假 非假则真
!true=false !false=true
- 自增自减运算符:++ --(一元运算符)
①++或--可以放到变量前面或后面,如果单独运算没有区别,都是自身加一或减一
②参与其他运算
++a , a++ eg:var a=10 m=++a 先加一,再赋值 a=11 m=11
var a=10 m=a++ 先赋值 ,再加一 a=11 m=10