JavaScript

JavaScript是什么?

HTML是一个页面的骨架

CSS是页面的样式,主要决定是什么样子的

JS决定页面的行为,来决定页面的变化

组成

BOM:指操作浏览器的部分

DOM:操作文档流的内容

ECMAScript:JS的书写语法和书写模式

书写位置

行内式(不推荐):直接把代码书写在标签身上

a标签:书写在href的属性上

非a标签:书写在行为属性上

内嵌式:把代码放在script标签对内

内嵌式js代码,不需要依赖行为,打开就可以实现

外联式(推荐):把代码书写在一个.js文件内

在script标签上放一个src来指定js代码的路径

JS变量

在程序运行中保存的一个中间值

格式:js中=是赋值的意思,一个变量只能存储一个值,变量命名规则同java一样

var bum = 100
//在浏览器弹窗显示num的值
alert(num)

//在控制台打印num的值
console.log(num)

//直接在页面输出num的值
document.write(num)

JS数据类型

基本数据类型

数值类型:所有数字(number)

字符串类型:单引号和双引号包裹的内容都是字符串,不区分单双引(string)

布尔类型:true(真),false(假)(boolean)

空类型:  null:表示有值,有一个空值(object)

                undefined:表示没有值(undefined)

使用typeof关键字来进行数据类型检测

var n1 = 100
var result = typeof n1
console.log = result
//浏览器控制台输出number

引用数据类型

null

数据类型转换

转数值:把其他数据类型转为数值类型

Number("要转换的内容"),可以转换为合法数字就是数字,不合法就是Nan

parseInt("要转换的内容"),和number是一样的

parseFloat("要转换的内容"),和parseInt一样,可以解析小数

var a = '100'
var b = number(a) // 100


var a = 'abc'
var b = number(a) // Nan

var a = '100abc'
var b = number(a) // 100



var a = '100'
var b = parseInt(a) // 100

var a = 'abc'
var b = parseInt(a) // Nan

var a = '100abc'
var b = parseInt(a) // 100

var a = '100.234'
var b = parseFloat(a) // 100



var a = '100.234'
var b = parseFloat(a) // 100.234


转字符串:把其他数据类型转为字符串类型

var a = true
String(a) // true String


var a = true
a.toString // true String

转布尔:把其他数据类型转为布尔类型

 false:0 NaN '' undefined null 其余一律为true

var a = "abc"
Boolean(a) //true

JS运算符

算数运算符:+(都是数值,加法运算,有一个为字符串,就做拼接)-,*,/,%(余数)

赋值运算符:=,+=,-=,*=,/=,%=(和java一样)

比较运算符:>,<,>=,<=,==(值比较,不考虑数据类型),===(全等,先比较数据类型,在比较值),!=(不考虑数据类型),!==(考虑数据类型)

逻辑运算符:&&,||,!(和Java一样)

自增自减运算符:++,--(和java一样)

条件分支语句

和java一样

函数

函数就是一个盒子,里面能够承载一段代码,起个名字就是函数了

函数定义阶段:装在盒子里面的代码,定义在函数内部使用的变量

形参:一个特殊的变量

特殊:只能在函数中使用,在函数调用时使用

//定义一个函数
function fn(){
console.log("这是一个函数")
}


//调用一个函数  一次定义,多次调用
fn()

函数调用阶段:把盒子中的代码执行 

实参:在函数调用的时候给形参进行赋值

递归函数:一个函数调用了自身,并设置了结束条件,这个函数才是一个正确的递归函数

function fn(n){
if(n === 1) return 1;
return n*fn(n-1)
} 

作用域

一个变量可以在什么范围进行使用

范围:

全局作用域:一个页面就是一个全局作用域

私有作用域:只有函数 生成私有作用域

使用:

定义:声明在什么位置的变量就是哪一个作用域的变量

访问:自己有用自己的,没有用父级,全局没有就报错

赋值:自己有给自己的赋值,自己没有给父级赋值,全局没有定义一个

对象数据类型

键值对的集合,对象内的值可以是任何数据类型

var obj = {hair: '书名'}

对象的操作:增删改查

var obj = {}

//增加 
obj.name = '小灰狼'
obj['age']= 18
obj.gender = ‘男’

console.log(obj)//{name:‘小灰狼’,age:18,gender:‘男’}


//删除一个键值对
//语法一
delete obj.name
//语法二
delete obj['age']

console.log(obj)//{gender:‘男’}

//修改一个键值对
obj.name = ‘小绵羊’

console.log(obj)//{name:‘小绵羊’,age:18,gender:‘男’}


//查
console.log( obj.name)//{name:"小绵羊"}
console.log(obj['age'])//{age:18}

数组数据类型

有序的数据的集合

var arr = [100,true,'hello world']
    序号    0   1      2

操作

长度的操作和数据的操作

var arr = [100,true,'hello world']

//获取数组的长度
console.log(arr.length)//3

//修改一下数组的长度
arr.length = 2
console.log(arr.length)//2
console.log(arr)//[100,true]

获取数据和设置数据

[100,true,'hello world']

//查询
console.log(arr[1])//true

//修改
arr[0] = 88
console.log(arr[0])//88

数组的遍历

var arr = [100,200,300,400,500]

//遍历数组
for(var i = 0; i < arr.length;i++){
console.log(arr[i])
}

冒泡排序

var arr = [9,3,6,2,4,1,8,5,7]

//循环遍历数组
for(var j = 0;j<arr.length-1;j++){

    for(var i=0;i<arr.length-1-j;i++){
    if(arr[i]>arr[i+1]}){
  
    var temp = arr[i]
    arr[i]= arr[i+1]
    arr[i+1]=temp
        }
    }
}


数组常用方法

数组.push(数据),将数据追加到数组的末尾

数组.pop()不需要传递参数,删除数组的最后一个数

数组.unshift(数据),将数据添加到数组的最前

数组.shift,删除数组最前一个数据

数组.reverse(),反转数组

数组.splice(开始索引,多少个,要插入的数据)删除数组中若干数据,并选择是否插入新的数据

数组.sort(),把数组排序

数组.sort(function ( a , b )  { return a - b} )//从小到大升序

数组.sort(function ( a , b )  { return b - a} )//从大到小排序

数组.join(连接符),将数组用连接符进行链接成一个字符串

数组.concat(其他数组),将其他数组和数组拼接在一起

数组.slice(开始索引,结束索引),截取数组中的某些数据

数组.indexOf(数据),查询数据所在的位置

数组.forEach(function(item(数组中的每一项),index(索引),arr(原始数组)){}),遍历数组

数组.map(function(item,index,arr){}),映射数组

数组.filter(function(item,index,arr){}),过滤数组

数组.evert(function(item,index,arr){}),判断数组是不是每一项都满足条件

数组.some(function(item,index,arr){}),判断数组中是否有某一项满足条件

字符串常用方法

帮助我们对字符串进行快速操作

字符串.charAt(索引),获取索引位置的字符

字符串.toLowerCase(),将字符串中的所有字母转换为小写

字符串.toUpperCase(),将字符串中所有字母转换为大写

字符串.replace(换下内容,换上内容),将字符串内第一个满足换下内容的片段替换,只能替换一个

字符串.trim(),去除首尾空格,中间不去除

字符串.split(分隔符),按照分隔符将字符串拆分成一个数组

字符串.substr(开始索引,多少个)

字符串.substring(开始索引,结束索引)

字符串.slice(开始索引,结束索引)截取字符串

数字常用方法

Math.random(),获取0~1之间的随机小数,含0不含1

Math.round(数字),对数字进行四舍五入的取整

Math.ceil(数字),对数字进行向上的取整

Math.floor(数字),对数字进行向下的取整

Math.pow(底数,指数),对数字进行取幂运算Math.pow(2,5)=2的5次方

Math.sqrt(数字),对数字进行二次方根计算(算数平方根)

Math.abs(数字),绝对值运算

Math.max(数字1,数字2,.....)对参数返回最大值

Math.min(数字1,数字2,.....)对参数返回最小值

(属性)Math.PI,得到一个近似pai的值

时间常用方法

//创建时间
var time = new Date()

var time = new Date(年,月,日,时,分,秒)(0表示1月,11表示12月)

获取:

时间对象.getFullYear(),获取时间对象中的年份信息

时间对象.getMonth(),获取时间对象中的月份信息(0表示1月,11表示12月)

时间对象.getDate(),获取时间对象中的日期信息

时间对象.getHours(),获取时间对象中的小时信息

时间对象.getMinutes(),获取时间对象中的分钟信息

时间对象.getSeconds(),获取时间对象中的秒钟信息

时间对象.getDay(),获取时间对象的星期信息

时间对象.getTime() ,获取时间对象的时间戳信息

设置(都需要传递参数  ):

时间对象.setFullYear(),获取时间对象中的年份信息

时间对象.setMonth(),获取时间对象中的月份信息(0表示1月,11表示12月)

时间对象.setDate(),获取时间对象中的日期信息

时间对象.setHours(),获取时间对象中的小时信息

时间对象.setMinutes(),获取时间对象中的分钟信息

时间对象.setSeconds(),获取时间对象中的秒钟信息

时间对象.setTime() ,获取时间对象的时间戳信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值