目的:人与计算机的交流
c
C++
C#
Java
Go
python
JS (脚本编程语言、基于浏览器的环境)
网页表单数据提交—无所不能
表单处理
对HTML、CSS 增·删·改·查
检测平台
TV 界面
移动端App
js跨平台(性能差一点)
pc 客户端
***所有的可视化界面
后端(Node.js)
核心语法 ECMAScript :基础语法、变量、数据类型、函数、逻辑处理(案例训练)
ES5 ES6、7、8 (ES NEXT)
DOM 文档对象模型:通过 ECMAScript 修改HYML和CSS
BOM 浏览器对象模型:获取浏览器信息、操作网页的历史记录、URL 处理
直接在标签当中执行相应的事件属性
在a标签中href
默认超链接
在HTML内嵌
外面创建一个.js的文件(推荐使用)
浏览器控制台操作(一般用于做调试的) Console
head 结束之前
body 结束之前
html渲染过程
网页渲染之后 用户点击交互触发
重绘 和 回流(可百度查看详解介绍)
区分大小写 (A与a不一样);
命名规则(小驼峰:backgroundColor)
每条语句以 ; 结尾
alear(’ ‘):弹窗
prompt(’ '):输入框
document.write():内容直接写入网页
console.log();控制台调试
变化的量,在内存中开辟一个存储空间对数据进行保存。
变量声明
1.var 2.let 3.const
通过var 关键字声明变量
var 变量名;
var 变量名 = 变量值;
注意:变量没有类型限制,可以随时赋予任意的一个值。
基本数据类型
引用数数据类型
字符串类型 string
var str = ‘abc’ 单双引号都可以
数值类型:number
var num = 123456 //由阿拉伯数字组成,不需要引号
十进制:常用
八进制:以0开头数字
十六进制:以0x开头,如oxF
二进制:由0与1组成的数字
浮点数精度 浮点数就是小数:
一般二进制浮点数不能精确的表示小数的类型
布尔值类型:boolean
只有两个值true和false
未定义:undefined
表示缺少值。(给了变量没给值)
空:null
代表没有对象。 可以用于销毁问题 置空
理解:
需求:需要描述一个学生,包含姓名、年龄、班级信息、性别
//应该怎么做
var student1 ={
name: 'jack ',
age: 18,
grade:‘大一’,
sex:‘男’
}
对象结构:
var 变量名 = {
属性名字:属性值,(属性值可以是任意数据类型()undefined和null没有意义)
属性名字:属性值,
属性名字:属性值,
…
}
typeof 变量值;
不同的数据类型通过typeof检测出他是什么类型的
var str = hello’;
var num= O;
var bool = true;
var u;
var n = null;
var obj ={
name: ‘jack’}
console.log('typeof str: ', typeof str);// string
console.log('typeof num: ', typeof num);// number
console.log('typeof bool: ', typeof bool); // boolean
console.log('typeof u: ',typeof u); // undefined
console.log( 'typeof n: ',typeof n);// object
console.log('typeof obj: ', typeof obj);// object
注意Null和Object都会返回object
原因:不管写什么代码 在底层都会用二进制表示,在JS中二进制前三位都为0,的话就会判断为object类型,Null的二进制表示全都是0;
var n1 = true;;
var n2 = ‘true’;
sonsole.log(n1==n2);
主要是三个函数的转换,Number()、String()、Boolean()三个函数的使用.
布尔值的转换:
Boolean(变量名);非空字符串都为true
字符串转化:string(变量)
console.log(String(str));
console.log(String(num));//‘123’
console.log(String(bool));//‘true’
console.log(String(obj)); //’[object object]'固定返回
变量toString():不可以转换Null和Undefined
console.log(typeof num.tostring());
转数值:
Number(变量)
如果是数值类型、会保留小数点;
如果是字符串转为NaN;
布尔值 true为1 false为0
对象是 NaN
NaN (not a number)不是数值,NaN与 NaN不相等
paeseInt()转换为整数 不会四舍五入
如果是字符串从左往右一个一个解析,遇见非数字停止解析。
parseFloat()
保留小数点
如果是字符串从左往右一个一个解析,遇见非数字停止解析。
+
-
*
/
% 取余,求余数
同时声明多个变量
var n1 = 2, n2=3;
++ 的理解
*在没有赋值操作的时候 ++在变量前面和放在变量后面是一样的;
*如果++放在变量前,先进行运算变量+1,然后再执行当前这一行代码。
*如果++放在了变量后面,则是先执行当前代码,完成之后对变量+1;
= += -+ *= /=
n = n + 1 简写 n += 1
== 只判断值 不判断类型
=== 全等 值和类型都一样
!= 不相等
!== 完全不相等
>
<
>=
<=
&& 与 同时
|| 或 二选一
! 非 相反
*逻辑 非 优先级最高;
*算数运算符;
*然后是关系运算符
*然后逻辑 与 或
*最后赋值
通过加()可以调整优先级。
语法:
条件?条件true执行表达式 : 条件false执行的表达式;
简单来讲就是二选一
例子:
var yuwen = prompt(‘请输入语文’),
shxuue = prompt(‘请输入数学’);
yuwen == 100 && shxuue == 100? alert(‘游乐园’):alert(‘在家做作业’);