JS基础

js是一种专门为网页交互设计的脚本语言,最初是为了实现表单验证
功能:网页交互(表单验证)、网页特效(漂浮的广告)、用户名记住账户和密码、网页游戏
js组成
ECMScript:核心组成部分,定义js的语法规范
BOM:整个浏览器。浏览器的一些前进、后退、刷新、历史记录、地址栏等
DOM:document 整个文档,主要是用来管理页面

1.type="text/javascript"说明当前script标签中文本的类型

2.所有的JS代码必须写在script标签里

3.为了语法规范,script标签写在head里

4.可以引入多个script标签,多个script标签之间,顺序执行

5.js代码可以外部引入

6.如果当前script标签作用引入外部文件,这个script标签中,就不能在写代码了
alert(“Hello World!”);//在页面上弹出警告框
[注]每一条JS语句后都必须加分号。语法规范
document.write(“Hello World!”); //在当前文本上输出内容
script
script type=“text/javascript” src=“demo.js”
alert(1); //这里代码执行不到

7.js的数据类型分为两大类
1.基本数据类型
<1>数字 number
<2>字符串 string
<3>布尔值 boolean
<4>特殊数据类型 null undefined
2.复合数据类型:数组

8.变量,,值可以改变的量叫做变量
(1)声明变量 通过关键字(系统定义的有特殊功能的单词)var
初始化:声明变量的时候同时赋值
(2)变量赋值
(3)可以同时声明多个变量,变量名用逗号隔开

  1. 输出当前变量/常量的类型。语法:typeof 变量/常量

10.js是弱语言,定义时不需要定义类型,赋值赋的啥类型就是啥类型,在后续代码中不要改变变量的数据类型

11.标识符(和java一样)
数字,字母,下划线和美元符$组成,不能以数字开头,区分大小写
标识符必须见名思意

12.js的运算符
算术运算符:+ - * / % 自加++ 自减 –
赋值运算符:= += -= *= /= %=
比较运算符:> < != ==(只要值相等就可以) ===(值和数据类型都必须相等)
逻辑运算符:&& || !
三目运算符:条件1 ? true : folse;
补充:一元运算符:++、–

13.js数据类型自动转换
补:查看js语法错误
火狐:fireBug
谷歌;chome控制台
(1)任何数据类型和字符串做相加操作时,其他数据类型会自动转换成字符串,进行字符串拼接,此时的+表示拼接的意思
如果其中一个操作数是字符串的时候,+号叫做拼接符
(2)任何数据类型除了和字符串做相加运算时,要先将字符串转化为数字在进行运算。
与NaN做算术运算的结果始终是NaN。包括NaN和本身做运算也是NaN(not a number)
字符串如果是纯数字字符串的话转化为数字,否则转换为NaN
eg:var tep = 1-“2”;结果为-1
var tep = 1-“2a”;结果为NaN
总结:任何数据类型除了和字符串做相加运算时,与数字做算术运算符的时候,其他数据类型会自动转化为数字在进行运算。
true—>1
false---->0
null---->0
undefined----->NaN

14.js数据类型自动转换
Boolean()
作用:将别的数据类型强制转化成布尔值
Number()
作用:将别的数据类型强制转化成数字
parseInt()
兼容Number()的功能 取整
parseFloat()
取浮点数 可以将别的数据类型转化为数字
注: var tep = 1/0;结果为Infinity 无穷大
var tep = -1/0;结果为Infinity 无穷小

15.js的语句
顺序、循环、选择(分支)
循环:while 、do …while、for
选择:if if…else switch
在循环语句中有结束循环break,结束本次循环continue;

16.js函数
无参函数:
fuction 函数名(){
函数体;
}
有参函数:
fuction 函数名(形参1,形参2…){
函数体;
}
函数分类:
内置函数(系统函数 官方函数)
自定义函数(用户自定义的)

函数返回值:return
函数执行到return就停止了,return后的语句不会执行
注意:return只能放在function 中,否则会报错

17.递归
概念:函数自己调用自己
特点:必须有参数,必须有return
方法:先去找临界值,即无需计算,获得的值,然后找这一次和上一次的关系,最后调用自身计算上一次的运算结果
eg:计算1加到n的和
function sum(n) {
if(n == 1)
return 1;
}
return sum(n-1)+n;
alert(sum(100));
斐波那契数列:
1、1、2、3、5、8、13、21、34
function rabbit(month) {
if(month<4) {
return 1;
}
return rabbit(month-3)+rabbit(month-1);
}
alert(rabbit(10));
18.事件驱动函数
概念:在和页面交互过程中所调用的函数
事件:和页面交互的行为
window.onload = function() {//写在这里的代码,在页面加载完成以后执行
var oBtn = document.getElementById(“btn”);
//给按钮添加事件驱动函数
//单击 onclick 这个函数是在按钮被点击之后触发的
oBtn.onclick = function() {
alert(“你点击我了”);
19.数组
数组的定义
(1)使用new运算符创建数组:
var arr = new Array();
var arr2 = new Array(3); //只能存3个元素
(2)省略new运算符创建数组:
var arr = Array();
(3)通过常量创建数组:(最常用的方法)
var arr = [1,true,“hello”];
数组的属性:
arr.length
数组的遍历:
js中数组和循序是绝配
Math.random():生成随机数函数
for…in:快速遍历,将数组中的每一个元素从头到尾遍历
eg:
for(var i in 数组){
//i是每次遍历的下标
}
20.栈方法
栈:先进后出
push()
格式:数组.push(元素…)
功能:给数组末尾添加元素
参数:我们要添加的元素,参数个数随意
返回值:添加完元素以后数组的长度

pop()
格式:数组.pop()
功能:移除数组末尾的最后一个元素
返回值:移除的元素
push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

队列:先进先出
push()::进
shift():
格式:数组.shift()
功能:从数组的头部取下一个元素
返回值:取下的元素
push() 方法和 shift() 方法使用数组提供的先进先出队列的功能。

unshift()
格式:数组.shift(参数…)
功能:从数组的头部插入元素
参数:我们插入的元素,个数随意
返回值:插入元素后数组的长度

21.数组的方法
concat()(生成了一个新数组)
格式:数组.concat(数组2);
功能:将两个数组合并成一个数组
返回值:合并好的新数组

slice()
格式:数组.slice(start,end);
功能:截取指定位置的元素并创建一个新数组
返回值:形成的新数组
strat:要截取的开始的下标
end:截取的最后的下标

splice:可以完成删除,插入,替换操作
格式:数组.splice(start,length,元素…)
参数: 参数1 截取开始的下标
参数2: 截取的长度
参数3 在截取的开始下标位置,我们要插入的元素,插入的元素个数随意
返回值:截取后的元素组成的新数组
替换:先删除,在插入

join()(最常用)
格式:数组.join(拼接符)
功能:使用拼接符将数组中的元素拼成字符串
参数:拼接符
返回值:拼接好的字符串
22.数组排序

系统提供的方法:
reverse():逆向排序
sort():升序(默认是按照字符串进行排序)
要求:一般情况下要自己编写排序方法,系统提供的不经常用
冒泡排序
原理:前后两个数两两比较,每一轮取出一个数放在正确的位置,一共比较元素的个数减1轮。外层的循环条件:i<arr.length-1,内层的循环条件:arr.length-i-1次
选择排序(打擂台法)
通过首先选出一个最小的数放在第一个位置上,然后选第二小的数放在第二个位置上,以此类推。
外层的循环条件:i<arr.length-1,内层的循环条件:j<arr.length
注:所有的复合数据类型,存储的都是门牌号(地址)
封装排序函数:
function choose(arr){
}
23.字符串
字符串创建方式:
(1)通过new运算符创建
var str = new String(“hello”)
(2)new可以省略
var str = String(true);
(3)通过常量创建(最常用)
var str = “hello”;
字符串的属性:length
访问字符串的字符:charArt()或者下标(str[1])
注:ECS中规定字符串是不可变的。字符串一旦创建,它的值就不能改变。
eg: var str=“hello”;
str[1]=“r”;
不能将e改成r
字符串的函数:
都要用在document.write()中使用
eg;document.write(“hello”.sub()+“world”.sup());
字符串方法:
charArt()

charCodeAt:
格式:字符串.charCodeAt(下标)
返回值:返回字符串中对应的ASCII值

String.fromCharCode();
格式:String.fromCharCode(ASCII值);
返回值:ASCII值对应的字符所组成的字符串

concat():连接字符串(一般很少用,一般使用+号)
字符串查找方法
indexOf(子串,开始查找的位置);
返回值:查找到,返回子串第一次出现的位置。否则返回-1
latstIndexOf(子串)
search():用于检索字符串中的字串。返回结果是字串在字符串中首次出现的位置。注意:方法对大小写敏感,但是可以加i,忽略大小写哦!

补:正则表达式:常用i,g
replace():替换
substring():字符串提取
split(分隔符,生成的数组的长度):字符串分割,一般第二个参数用的较少
数组->字符串:join
字符串->数组:split
toLowerCase():全小写
toUpperCase():全大写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值