是高级编程语言,解释性语言,有逻辑性,像计算机主动发出命令。运行在客户端的脚本语言。
作用:表单动态校验,网页特效,服务端开发,桌面程序,App,控制硬件-物联网,游戏开发。
浏览器有渲染引擎,JS引擎
在script内部,由ECMAScript(JS语法),DOM(页面文档对象模型),BOM(浏览器对象模型)组成。
1.输入输出语句
输出弹出框:alert('');
控制台输出:console.log('');
输入框:prompt('请输入您的年龄');
2.变量
在内存中申请一块存数据的空间。
变量使用分为声明,赋值。
声明变量:var age;//声明一个名为age的变量,计算机自动分配空间
赋值age=10;
或var age=18;//变量的初始化
变量语法的扩展:
1.更新变量,2.声明多个变量,3.声明变量的特殊情况(声明不赋值undefined,不声明不赋值直接使用,报错)
变量命名规范:字母数字_$(分大小写,数字不能开头,不能是关键字保留字,不用name做变量名,驼峰命名)
www.iciba.com
交换变量
3.数据类型
JS属于弱类型动态语言,变量数据类型只有程序运行时根据等号右边的值自动确定。
数据类型可直接改变。
简单数据类型(number-0,string-"",boolean-false,undefinded-undefinded,null-null)
数字型进制(输出默认转为十进制)
八进制:数字前0
十六进制:数字前0x
数字型范围
alter(Number.MAX_VALUE);
alter(Number.MIN_VALUE);
数字型三个特殊值
isNaN判断:非数字返回true
2.字符串型
""/''JS推荐''
字符串嵌套:外单内双(因为就近匹配)或外双内单
换行:JS用转义符实现\n换行,\b空的格子,\t缩进√,转义字符要写到引号里面
检测获取字符串长度
console.log(str.length);
字符串拼接:字符串+任何类型=新字符串,数值相加字符相连
数字+数字=新数字
字符串拼接加强:
变量和字符串拼接口决:引引加加
3.布尔型
true在加法运算中当1,false当0
var variable=undefined;//相当于只定义不赋值+’pink‘新字符串,+1为NaN
null
var space=null;+'pink'->nullpink +1=1
获取变量数据类型
var num=10;
console.log(typeof num)
prompt取过来的值是字符型,不能+数得正确结果
控制台颜色
蓝:数字/Boolean
白:字符串
灰:未定义/空值
字面量:看值分析是什么类型
数据类型的转换:prompt和表单取得值是字符串类型,若数字运算前需转类型
转字符串:
XX.toString()
String(XX);
+拼接 隐式转换 XX+''
转数字型(重点)
parseInt(string)函数,转整数,保留小数的整数部分,混合型类型时非数字及部分不显示(去单位),过于混合显示NaN
parseFloat(string)函数,转浮点数
Number()强制类型转换
隐式转换(-*/) '12'-0 '12'-'11' '12'*1 '12'/1 ->+一定要转换
转布尔型
Boolean()
表示空否定转为false,如'',0,NaN,nullundefined
其余全部转为true
标识符:起的名,不是关键字和保留字
JS运算符
算数,自增自减,比较,逻辑,赋值运算符
算数:+-*/%
浮点数在算数运算中会有问题:小数十进制先转二进制再转十进制造成的误差,因此也不能用浮点数相比较判断两浮点数是否相等。
自增自减:和变量配合
比较运算符(关系运算符),有返回结果true,false
<,>,<=,>=,==(会转型,隐式转换),!=,===,!==全等不全等,即非全等(之和数据类型都一致)
逻辑运算符(多个条件)根据真假,但返回具体值
&&并且,||或,!非
bool值参与逻辑运算,
值和表达式参与逻辑运算(短路运算/逻辑中断)重要
左边可定结果不再算右边
&&表达式1为真,返回表达式2
假,返回表达式1
赋值运算符:
=,+=,-=,*=,/=,%=
运算符优先级:
括号>一元运算符>二元运算符>比较运算符>相等运算符>逻辑关系运算符>赋值运算符>逗号
复杂数据类型(object)
Js流程控制-分支
流程控制:控制代码按不同结构顺序来执行。
顺序结构:默认
分支结构:
循环结构: