JS
1.客户端脚本语言
脚本语言:运行的时候一句一句读取,解释代码执行就可以了(逐行执行,所以要注意打印时的位置)
传统编译型语言:先将高级语言的代码转换成机器语言代码,再执行。
2.浏览器执行js代码的过程
解析渲染html,css的渲染引擎(内核)
解析引擎,将高级语言转换成机器语言,v8(谷歌的浏览器解析引擎)
3.组成
ECMA : Script基础语法
DOM文档对象模型 :利用js操作元素的一系列内容
BOM浏览器对象模型 : 利用js操作浏览器的一些内容
4.代码填写位置
行内式 //写在head板块中
内嵌式 //写在body板块中
外联式 //写在外部js文件中,通过< script src=‘文件路径’>< /script>引入
所有方法都要注意js代码写入的位置,js代码需要写在结构代码的后方,否则需要通过入口函数来引入(原因和方法在本人另一篇文章中做解析)
5.常用代码
alert(’’) 弹出警示框
console.log() 控制台输出
console.dir() 显示元素的属性和结构
console.error()
prompt("") 弹出输入框
confirm("")提交信息后的确定取消框
6.变量
声明关键字 var
声明方式 var 变量名;
初始化 var 变量名=数值;若初始化值为文字或字符串,则需加’’(声明字符串用单引号和双引号都行)
变量的赋值覆盖:变量值以最后一次赋予的为准
同时声明多个变量:var name=1,age=2,sex=3;
变量命名规范:1.开头必须是英文,_或$符号
2.一个整体的变量名中间不能有空格
3.严格区分大小写,大小写不同的变量名视为不同的变量名
4.变量名不能是关键字或保留字
5.建议命名有意义,便于区分
6.建议驼峰命名法,即首个字母小写,后面每个单词的首字母大写
7.数据类型:
js中变量的数据类型是不固定的,不由变量名决定,而是由右边具体的赋值决定
1. number型:
数字型 :(右边数字为整数) PI型:右边数值为3.14
八进制型:右边数字以0开头 十六进制型:右边开头为0x
最大值:Number.MAX_VALUE 最小值:Number.MIN_VALUE
Infinity:无穷大 NaN:非数字类型
2.布尔型:
进行判断的数据类型,输出值为true或flase
判断非数字类型:isNaN() ,若非数字,返回true;若为数字,返回flase
3.字符串型:
以引号进行标识’'或""
嵌套规则:外单内双或外双内单
转义字符(要用引号包裹,即只能在字符串内生效):\n换行,\斜杠,'单引号,“双引号,\t缩进
字符串长度计算:length;如:var a = “name 1”;a.length;输出为6
字符串拼接:+ ;前提:加号两边至少有一个字符串类型的数据
如:“12” + 12 ;输出为"1212"
4.undefined型
undefined未定义;undefined和数字拼接,结果为NaN
undefined和字符串拼接,结果为正常拼接,比如nameundefined
null和数字拼接,结果还是那个数字,因为Null代表空值,和字符串拼接也是一样
数据类型检测:typeof(变量名),用法console.log(typeof(变量名))
字面量:概念,一眼就能看出数据值以及数据类型的数据
8.数据类型转换:
toString() 转成字符串 变量.toString()
如:var num =10; var str = num.toString()
String() 转成字符串 String(变量名)
如:var num =10;var str =String(num)
“”+num 隐式转换 num+""
如:var num =10; var str ="" + num;//利用了+拼接字符串的输出结果为字符串
parseInt() 转化成整数 parseInt(变量);只能识别数字开头的数据,并且会删除非数字的数据,若开头就不是数字,则返回NaN
parseFloat() 转化为浮点数 parseFloat(变量);特点与parseInt()相似,但会保留小数
Number() 转化为数字
str-0 隐式转换 和转换成字符串的原理相同,可以达到效果的运算符有-,*, /三种
Boolean 转化为布尔型 会将0,null,undefined,NaN转换为false,其它转化为true
9.算数运算符:
+ 和运算
- 差运算
* 乘运算
/ 除运算
% 取余数值
== 判断是否相等的比较;不能直接用两个浮点数进行比较
算数运算时,使用小数可能会产生精度问题
表达式:如1+1
1是操作数,+是运算符,1+1为表达式,他会有个返回值2
递增递减运算符
递增n++先运算再自加,++n先自加再运算
递减n–先运算再自减,–n先自减再运算
总体而言,输出结果是以运算结束为结点的,所以后加和后减的影响是会以其本身数值计入计算结果,并会以自加后更新的数据影响后面的计算。
前和后的相同点都是会更新其本身的值,不同点是会不会计入本次计算中
比较运算符:
>,<,>=,<=,,!=,=,!==
一个等号是赋值
两个等号是判断数值是否相等
三个等号是判断数值以及数据类型是否相等
!=在进行比较时,会隐式转换两边的数据类型,使其一样之后再做比较
!==不会进行数据类型的转换,但会同时比较其数据类型以及数据值
10.逻辑运算符
& 且 全真才为真
| 或 全假才为假
! 非 真的输出值为假,假的输出值为真
短路运算符
逻辑运算符的左右值不是布尔型,而是表达式或数值时,会发生逻辑中断
|| 如果左边第一个为真,则直接返回表达式第一位的数值;如果左边第一个为假(比如0),则会从左往右依次检索,并返回第一个为真的数值;如果检索完毕后都为假,则返回最后一位
常用于设置默认值,如 var res = prompt(“请输入绩效”)
var jixiao = res || 3000
&& 如果左边第一个为假,则直接返回这个假值;如果左边第一个为真,则依次向后检索,当出现假值时返回假值;若全部为真,则返回最后一个的值
常用于设置判决条件,如 var a = prompt(“您是否要选择加入”)
var b = “加入”&&alert(“欢迎加入”)
总体思路是会从左向右依次检索表达式的值,根据||和&&不同的特性,当能确定结果时直接进行返回操作。