Js
- js介绍
Js全称叫javascript,但不是java,他是一门前台语言,而java是后台语言。
Js作者是布兰登艾奇。
前台语言:运行在客户端的
后台语言:跟数据库有关的。
- 能干什么?
页面特效,开发页面游戏,后台开发等等。
- js和ECMAscript的关系
ES不是语言,是js的标准,我们学习js得按es的标准学习。
- 前端的三个层次
Html 结构层
Css 表现层
Js 行为层
- Js写在哪里
因为js和php都是脚本语言,js写在script这个标签里,php写在<?php>标签里。
变量
变量:可以改变的量,往往用英文字母代替变量,并且区分大小写。
变量的定义(声明): var 加 字母 var a 我声明了一个变量叫a
变量的用途:变量其实是一个容器,起到临时存储数据的作用。
通过=进行赋值。 var a=12;
- js语言的输出
alert() 这是js中的一个方法 弹出框
console.log() 浏览器控制台输出,用于代码测试
document.write() 在浏览器中写出
- js的注释
(1) 单行注释 //
(2) 多行注释 /* 内容 */
- 常量 不变的量
汉字 数字 往往当做值使用。除了数字之外 要带引号”” ‘’
红色的报错,说雅宁是一个变量,但是这个变量没有声明。
说明有这个变量,但是没有赋值。
变量起名的规则:不能使用汉字 区分大小写 不能特殊符号开头除了_ $
_a √ -a × a3 √ 3a ×
带引号和不带引号
带引号的 是什么就输出什么 ----叫字符串
变量不是 变量输出的是他后面的值 如果没有赋值就是undefined
带引号的45是字符串,用+ 只是拼接 没带的是数字 +是四则运算
Js的关键字 var function
- js语言的四则运算
+
纯数字之间就是加法 3+6
和字符串之间 + 就是拼接
-
纯数字是减法
和字符串之间 - 还是减
*
纯数字还是乘法
和字符串之间 还是乘
/
纯数字是除 和字符串还是除
减乘除 三者有隐式转换的能力。在计算的过程中 将字符串强制转成了数字。
%
取余数
数字
整数(整型)和小数(浮点型)
parseInt() 将字符串强制转换成整型 parseFloat() 将字符串强制转换成浮点型
代码执行顺序是从上往下。一个模块一个模块的执行。
变量提升:浏览器的功能,
Js代码执行
Js代码执行前,浏览器会给他(js)一个全局环境,叫window(全局作用域)。在window下浏览器找到所有的带var和function的关键字然后给他们分配内存地址。不管你赋值没赋值,浏览器告诉所有的子模块,这个东西存在了。这种能力叫变量提升。
变量的值
我们学了两个了,一个是字符串,数字。不管是字符串还是数字,后面的值统统称为数据。
数据的类型有哪些?
字符串 数字 数组 json 对象 布尔 null undefined 函数
基本和复合类型
运算
1.四则运算 + - * /在一起 先算* / 后算加减
2.逻辑运算 或(||) 且(&&) 非(!) 结果是布尔 true和false
3.比较运算 > >= < <= !(取反) == (双等号)
= 是赋值运算 结果是true和false
=== 全等 数据的类型和值都一样 不全等于 !==
== 也有隐式转换的能力
Js代码执行前,浏览器会给一个全局作用域window
Window分两个模块 一个是存储模块 一个是执行模块
存储模块 找到所有的var和function 关键字 给这些变量添加内存地址
执行模块,代码从上到下执行,遇到变量就会去存储模块查找,有和没有
有就看你赋值没有,赋值了就是后面的值 没有赋值就是undefined。
没有 结果就是xxx is not defined
- parseInt()
- parseFloat()
遇到第一个字节是非数字就结束了。
- var a=”hello world”
a这个变量是字符串了,对于里面的每一个字母来说,他是字节。里面有11个字节。
字节总数用length表示。
4
符号运算
+ 字符串拼接
. 表示 ”的“
对于点运算 点前面的叫对象 点后面的叫属性和方法。
属性和方法的区别?
- a.length length 是属性
- a.way() way() 是方法
5
条件语句
如果 否则 if else
If(条件){
执行模块一
}else{
执行模块二
}
多个条件
从大到小
三元(目)运算
条件?语句1:语句2
6.自加和自减
= 赋值运算 他的顺序是从右往左 从后往前
i++ 返回的是自增之前的值 先利用再加
++i 返回的是自增之后的值 先加再利用
i--
--i
- 变量提升
变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window
,window分两个模块,一个叫内存模块,一个叫运行模块,内存模块找到当前作用域下的所有带var和function的关键字,执行模块执行js代码,从上到下执行,遇到变量就会通过内存地址去查找这个变量,有和没有这个变量。有这个变量就会看赋值没赋值,如果赋值就是后面的值,如果没有赋值就是undefined,如果没有找到就说这个变量 is not defined。
- 条件语句
If(条件){
语句
}else{
语句
}
{} 在js我们把他叫代码块。如果代码块里的内容没有执行完,语句不会向下执行。
代码块是一个独立的整体。如果js中某一条语句出错,那么就会在此终止不会向下执行。
- 循环语句
循环,就是对一个整体进行逐个查找。
循环
- 从什么开始
- 查找的步长
- 结尾数字
计算机对数据的计算不是从1开始,从0开始,也就说0代表第一个数据
我们把用数字去代替字节的方法,将数字叫做这个字节的下标(索引)
循环语句的格式
循环用for
for(){}
我们最后发现i是5,但是i应该是for循环的代码块中的变量。但是for循环之外也可以使用,我们把这种现象叫做内存泄露。需要清内存。
1
12
123
1234
Js处理数据的目的就是将数据渲染到页面中,而渲染的数据的本质是字符串。
其他数据的底层都是字符串。
学习到最后,都是在处理数据,渲染数据的最本质方法就是字符串拼接。
后期的数据渲染的方式都是由字符串衍变而成。
4.加号的使用
+ 字符串拼接
变量和字符串之间都需要使用+进行连接。
算法
案例1 求1-10的和
弹出框的三种形式
- alert() 警告框
- 输入框 prompt()
- 确认框 confirm()
案例2 找出1-100之间即能被5又能被6整除的数字
我们把这种一个一个列举出来的方法叫穷举法。
案例3 求1-20的质数
质数 只能被1和他本身整除的数字 最小质数是2
案例4 如何取到375中的百位 十位 个位?
If条件的种类
If(条件){}
If 里面的条件只是一个字母
- m=true
- M和null的关系
Boolean中的true和false 我们可以用数字中的0和非0代替。
上面if(m) 如果m是true
如果m是非空
If里面的条件
有 关系运算 > >= < <= == === !=
If(m=5){}
= 在js中是赋值的意思,并且这种运算从右往左执行。
将数字5赋值给变量m。
逻辑运算
|| && !
- js的本质就是处理数据。数据来自于后台的数据库。
所以变量就起到一个临时存储数据的作用。
ECMAScript制定了js的数据类型。
数据类型有哪些?
- 字符串 String
- 数字 Number
- 布尔 Boolean
- Null 空
- Undefined
- Object 对象
Array 数组 json function 函数 日期 数字对象等
上面红色的叫基本数据类型。
Var s=”hello”; var s=12; var s=true; var s=null; var s=undefined;
基本数据类型就是简单的赋值。
引用(复合) 数据类型
Var s=[“hello”,123,true,”张三”] 数组
Var json={“name”:”zhangshan”,”age”:23}
引用数据类型 他是将内存地址赋值给变量
基本数据就是简单的赋值 引用数据类型是将数据的内存地址赋值给变量
栈内存 就是环境。
堆内存 就是存代码,数据的仓库。
- js在执行前 浏览器会给他一个环境,叫window 全局作用域。
Alert() prompt() confirm() 都是方法。
怎么找这个方法和属性归属?
- arr.find() find() 是arr的
- 没有带. 在谁的环境下 是谁的。
判别变量的数据类型 typeof 变量名 返回的是数据类型
在window下的方法和属性我们把他叫全局方法或全局属性。
- eval() 将字符串转化为js代码
表达式 带=的都叫表达式
语句
但凡从后台拿来的数据,都是字符串,不管张成什么样。
Var a=”[12,23]”; var a=”12”
Eval() 括号里面必须填东西,并且必须是字符串,将这个字符串转换成对应的js代码。
Eval(“alert(12)”) ------> alert(12)
Eval(“()”) 如果eval方法中带() 就会强制的将括号里的表达式转换成对象。
尤其是{} [] eval()里面必须加()
- isNaN() is not a number
当()里面的东西不是数字的时候 返回true 是数字返回false
isNaN() 具有隐式转换的功能
隐式转换的有哪些 - * / == isNaN()
- Number()将其他类型强制转换为数字
- parseFloat() 将其他类型转化为浮点数
- .parseInt()将其他类象强制转换为整数
- String() 将里面的内容转换成字符串