JavaScript基础

-------------------------------------------------------------------------------------------------------------------------
JavaScript
-------------------------------------------------------------------------------------------------------------------------
promote('提示用户输入语');
var 变量名;     *定义变量
alter();     *弹窗
变量名 = 数值/字符串;    *变量的赋值

输出语句:document.write('在页面输出内容')
          alter('在弹窗输出内容')
          console.log('输出到控制台')
输入语句:promote('提示语')

***变量:
1.声明变量与赋值:语法     let 变量名    变量名 = 数值
2.更新变量:变量赋值后,通过新的值替换变量中的值,就是重新赋值。
3.变量的本质:程序在内存中申请的一块用于存放数据的一个小空间。

***数组:let arr = [数1,数2,......]         取值语法   arr[索引]     arr.length获取数组长度

***常量:当某个值永远不需要改变的时候,用const声明一个常量。
    语法:const 常量名 = 常量值

***数据类型:
    基本数据类型:number 数字  string 字符串  boolean 布尔型  undefined 未定义型  null 空类型
    引用数据类型:object  对象

NaN     Not a Number     它代表一个计算错误。它是一个不正确的或者一个未定义的数字操作所得到的结果。

***模版字符串示例:
let age = 20
document.write(`我今年${age}`岁了)      网页输出结果为:我今年20岁了

***数据类型的检测:typeof运算符可以返回被检测的数据类型。
    1.作为运算符:typeof x (常用写法)
    2.函数形式:typeof(x)      两种方式的结果是一样的

***类型的转换:
隐式转换:某些运算被执行时,系统内会自动将数据类型转换,这就是隐式转换。
显式转换:自己写代码告诉系统需要转换为什么数据类型。
let num = parseInt(str);      let num = Number(str);    let str = String(num);    let bool = Boolean(num);

***数组的操作:
    新增:arr.push('数组末尾新增数据')     arr.unshift('数组开头新增数据')
    删除:arr.pop('删除末尾元素')     arr.shift('删除开头元素')     arr.splice(开始下标,删除的个数)
    修改:数组[下标] = 新值
    查询:数组[下标]

***函数:function,是被设计为执行特定任务的代码块
    function 函数名() {
        代码块;
}
通过    函数名()    调用函数

***匿名函数:

1.函数表达式:将匿名函数赋值给一个变量,并且通过变量名来进行调用。
    函数表达式与具名表达式的区别:
    1.具名表达式的调用可以写在任意位置
    2.函数表达式,必须先声明函数表达式,后调用
语法:
let fn = function() {
    //函数体
}                       
调用方式   fn()

2.立即执行函数:不需要调用,立即执行
使用场景:避免全局变量的污染
语法1:(function () { //函数体 } ) ( );
语法2:(function () { //函数体 } ( ) );

***对象(object):JavaScript里面的一种数据类型,通常用于描述某一事物或某一类人
对象声明语法:
let 对象名 = { 
    uname: '名字',
    age: 18,
    gender: '性别'
}

***对象中属性的操作:
    1.获取对象属性值:对象名.属性名      对象名[ '属性名' ]
    2.修改对象属性值:对象名.属性名 = 修改的值
    3.新增新的属性并赋值:对象名.新属性名 = 新属性值
    4.删除属性:delete 对象名.属性名  (很少用,了解一下就好)
    
***对象中的方法:
定义格式:
let obj = {
    属性名1: 属性值1,
    方法名1: function() {
        //方法体    
    }
}
调用方法:对象名.方法名()

***遍历对象:
for( let k in 对象名) {
    console.log(k)                 //打印的是属性名
    console.log(对象名[ k ])       //打印的是属性值
}

***内置对象:JavaScript内部提供的对象,包含各种属性和方法供开发者使用
1.数学对象:Math:提供了一系列做数学运算的方法
    random:生成0-1之间的随机数[ 0,1 )
    ceil:向上取整
    floor:向下取整
    round:四舍五入
    max:获取最大值
    min:获取最小值
    pow:幂运算
    abs:获取绝对值
***获取N--->M之间的*随机数*的公式:Math.floor( Math.random( ) * ( M - N + 1 ) ) + N

**************************************************************************************************************  Web API
**************************************************************************************************************
---Web API
作用:就是使用JS去操作HTML和浏览器
分类:DOM(文档对象模型)、BOM(浏览器对象模型)

***DOM对象:浏览器根据HTML标签生成的JS对象
    ->所有的标签属性都可以在这个对象上面找到
    ->修改这个对象的属性会自动映射到HTML标签身上
    DOM的核心思想:
    ->把网页内容当做对象来处理
    document对象:
    ->是DOM里面提供的一个对象
    ->所以它提供的属性和方法都是用来访问和操作网页内容的 ( 列如document.write() )
    ->网页所有内容都在document里面


&&&获取DOM对象&&&
1.根据CSS选择器来获取DOM元素 (***重点***)
*** document.querySelector( 'css选择器' )        //获取第一个匹配选择器的元素
*** document.querySelectorAll( 'css选择器' )    //获取所有对应选择器的元素放在一个数组中

2.操作元素内容:能够修改元素修改文本更换内容
    1.对象.innerText属性           --->对象.innerText = '修改的值'
        ->只识别文本,不能解析标签
    2.对象.innerHTML属性        --->对象.innerHTML = '修改的值'
        ->将文本内容添加/更新到任意标签位置
        ->会解析标签,多标签建议使用模版字符

3.操作元素样式属性:
    1.通过style属性操作CSS
    -->获取元素对象后:                //对象.style.样式属性 = '  '
    2.操作类名(className)操作CSS
    -->获取元素对象后:                //对象.className = ' 选择器 '    可以同时修改多个属性
    3.通过classlist操作类控制CSS             &&classlist是追加和删除不影响以前类名
    -->获取元素对象后:                
    //对象.classlist.add( ' 选择器 ' )          在原先类名后进行追加同一级选择器
    //对象.classlist.remove( ' 选择器 ' )      移除选择器
    拓展-->对象.toggle( ' 选择器 ' )          替换原先的选择器
    
获取表单里面的值通过value属性获取
表单对象.value   可以获取值
表单对象.value =  '修改值'
表单对象.type =  'password'   修改类型password/text

复选框:const checkbox = document.querySelector('input')
              checkbox.checked = 'true'
button:
    const bt = document.querySelector('button')
        bt.disabled = true    true禁止点击  false允许点击

***自定义属性:以data- 开头   例如data-id =  '1'

***定时器-间歇函数
开启定时器:setInterval( 函数, 间隔时间 )
关闭定时器:let num = setInterval( 函数, 间隔时间 )     num表示定时器的id(每个定时器的唯一标识符)
              clearInterval( num )    即可关闭对应的定时器
//函数可以在外面定义,函数名()调用,也可以直接作为一个匿名函数写在参数列表中     
//间隔时间单位是毫秒

***事件监听***:就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,
                   也称为绑定事件或者注册事件,比如鼠标经过显示下拉菜单,比如点击可以播放轮播图等等。
***语法:元素对象.addEventListener( ' 事件类型 ' , 要执行的函数 )
        ->事件源:那个DOM元素被事件触发了,要获取DOM元素
        ->事件类型:用什么方式触发,比如鼠标经过mouseover,鼠标点击click等等
        ->事件调用的函数:要做什么事

***事件监听版本的区别:
```DOM L0:事件源.on事件 = function( ){   }
```DOM L2:事件源.addEnventListener('事件' , 函数)
:::二者区别:on方式会被覆盖,addEnventListener()方式可以绑定多次,拥有事件更多特性,推荐使用

js页面加载:
window.onload = function () {   }


***接收主页?action=参数值   判断进入哪一个子页***
-------------------------------------------------------------
// 获取查询字符串
const queryString = window.location.search;
// 解析查询字符串,将参数以对象的形式存储
const params = new URLSearchParams(queryString);
// 获取 action 参数的值
const action = params.get('action');
// 判断 action 参数的值
if (action === 'login') {
  // 执行登录操作
  console.log('用户选择登录页面');
} else if (action === 'register') {
  // 执行注册操作
  console.log('用户选择注册页面');
} else {
  // 其他操作
  console.log('未指定页面类型');
}
-------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值