前端的一些东西

本文详细介绍了jQuery的基本概念、使用方法及核心功能,包括选择器、属性操作、CSS样式控制、文档处理、事件处理等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机校验:var phoneNumReg = /^1[34578]\d{9}$/;  

alert("") 向浏览器弹出一个提示框
   document.write("")  向body中添加一个内容
   console.log("")     向控制台输出一个内容
   <button onclick="alert('讨厌  死鬼  你点我干嘛')">点我一下</button>    js代码可以写在标签的属性中
   将一个字面量转成String 类型的方式
       a.调用toString()方法       null 和 undefined调用toString()方法会报错 
       b.调用String()函数           例:var a = 123;  var b = String(a)   String() 函数实际上是将null 和 undefined等值 转换成 “null”“undefined”
    将一个字面量转成一个Number类型的方式
        a.调用Number()函数   
            *如果是纯数字的字符串,会将其直接转换成数字
            *如果字符串中含有非数字的字符串,会将其转化为NaN(not a number)\
            *如果字符串是一个空串或者全是空格,会将其转化成0
            *Boolean类型转数字  true 转成1   false转成0
            * null 会转换0 
            * undefined会转换成NaN
        b.调用
              parseInt() 将字符串转换为int        只能将一个以数字开头的字符串中未出现非数字的字符前面的数字转化成数字    
              parseFloat 将字符串转换成浮点数
              parseInt 和 parseFloat 对于非String类型的数据  它会先转换成String  在对其进行操作
   将一个数据转换成boolean类型
        a.调用Boolean()函数
            * 将一个数字转成boolean 除了0和NaN是false 其他全部是true
            * 将一个字符串转成boolean 除了空串是false 其他都为true
            * 将null和undefined 转成boolean  值为false   

运算符
   $$ 逻辑与运算 
      * 当第一个值为true时,必然返回第二个值
      * 当第一个值为false时,必然返回第一个值
   || 或运算
      * 当第一值为false时,必然返回第二个值
      * 当第一值个为true时,必然返回第一个值   
            
1.了解jqery
   *是什么: what
      *一个js函数库:write less ,do more
      *封装简化DOM操作(crud)/ajax
   *为什么用它:why?
      *强大选择器:方便快速查找DOM元素
      *隐式遍历(迭代):一次操作多个元素
      *读写合一:读数据和写数据使用同一个函数,读的时候不传值,写的时候传值就行
      *事件处理
      *链式调用
      *DOM操作(cud)
      *样式操作
   *如何使用: How?
      *引入jquery库
        *本地引入和CDN远程引入,本地引入一般用于测试,生产最好是远程引入
        *测试版本(测试版)和生产版本(压缩版)
      *使用jquery
        *使用jQuery函数:$/jquery
        *使用jQuery对象:$xxx(执行$()得到的)
2.jquery的2把利器
   *jQuery函数:$/jquery
      *jQuery向外暴露的就是jQuery函数,可以直接使用
      *当成一般函数使用:$(param)
         *param是function:相当于window.onload = funcion(文档加载完毕之后的监听)
         *param是选择器字符串:查找所有匹配的DOM元素,返回包含所有DOM元素的jQuery对象
         *param是DOM元素:将dom元素对象包装为jQuery对象返回 $(this)
         *param 是标签字符串:创建标签dom元素对象并包装成jQuery对象返回
      *当成对象使用:$.xxx
         *each(obj/attr,function(key,value(){}))
         *trim(str)
      *当成对象使用: $.xxx
   *jquery对象
      *包含所有匹配的n个DOM元素的伪数组对象,
      * 执行$()返回的就是jQuery对象
      *基本行为:
        *length/size():得到dom元素的个数
        *[index]:得到指定下标对应的dom元素
        *each(function(index,domEle)()):遍历所有的dom元素
        *index():得到当前dom元素在所有兄弟中的下标
3.选择器
   *是什么?
     *有特定语法规则(css选择器)的字符串
     *用来查找某个或某些DOM元素:$(selector)
   *分类
     *基本
       * #id  
       * tagName/*
       * .class
       * selector1,selector2,selector3:并集
       * selector1selector2selector3:交集
     *层次
       *找子孙后代,兄弟元素
       *selector1>selector2:子元素
       *selector1 selector2:后代元素
     *过滤
       * 在原有匹配元素中筛选出其中一些
       * :first
       * :last
       * :eq(index)
       * :not(selector)不是这个的其他元素
       * :lt
       * :gt连续几个
       * :odd
       * :even
       * :hidden
       * :visible
       * :[attrName]
       * : [attrName=value]
     *表单
       * :input
       * :text
       * :checkbox
       * :redio 
       * : checked 选中的
4.属性
    *操作标签的属性,标签体文本,
    *attr(name)/ attr(name,value):读写非布尔值的标签属性
    *prop(name)/ prop(name,value):读写布尔值的标签属性
    *removeAttr(name)/removeProp(name):删除属性
    *addClass(className):添加class
    *removeClass(classValue):移除指定class
    *val()/val(value):读写标签的value
    *html()/html(htmlString):对写标签体文本
5.CSS模块
    *style样式
      *css(styleName):根据样式名得到对应的值
      *css(styleName,value):设置一个样式
      *css({多个样式对}):设置多个样式
    *位置坐标
      *offset();读/写当前元素坐标(原点是页面左上角)
      *position();读当前元素坐标(原点在父元素左上角)
      *scrollTop()/scrollLeft();读、写元素、页面的滚动条坐标
    *尺寸
      *width()/height():width/height
      *innerWidth()/innerHeight();width+padding
      *outerWidth()/outerHeight();width+padding+border
6.筛选模块
      *过滤
        *在jquery对象内部的元素中找出部分匹配的元素,并封装成新的jquery对象返回
        *first()
        *last()
        *eq(index)
        *filter(selector)
        *not(selector)
        *has(selector)
      *查找
        *查找jquery对象内部的元素的子孙、兄弟、父母元素,并封装成新的jquery对象
        *children(selector):子元素
        *find(selector):后代元素
        *preAll(selector):前面的所有兄弟
        *siblings(selector):所有兄弟
        *parent():父元素
7.文档处理模块
      *增加
        *append()、appendTo()插入后部
        *preppend()、preppendTo 插入前部
        *before()插入前面
        *after()插入后面
      *删除
        *remove():将自己和内部的孩子都删除
        *empty():掏空
      *更新
        *repalcewith()
8.事件模块
      *绑定事件
        *eventName(function(){})
        *on(‘eventName’,function(){})
        *常用事件
           *click,mousenter/mouseleave mouseover/mouseout fouce/blur
           *hover(function(){},function(){}) 
      *解绑事件
           *off('eventName')
      *事件委托
         *将子元素的事件委托给父元素处理
            *事件监听绑定在父元素上,但事件发生在子元素上
            *事件回冒泡到父元素
            *但最终调用的是事件回调函数的是子元素,event,target
          *好处:
            *新增的元素没有事件监听
            *减少监听的数量
          *编码
            *delegate(selector,‘eventName’,function(){})  回调函数中的this是子元素
            *undelegate(‘eventName’,)
      *事件坐标
          *event.offsetX 原点当前元素左上角
          *event.clientX  原点是窗口左上角
          *event.pageX  原点是页面左上角
   
      *事件相关
          *停止事件冒泡
          *阻止事件的默认行为:event.preventDedault()

例子:

$('input').bind('click',function(e){
    $('div').show();
    e.stopPropagation();
   });
   $('html').bind('click',function(){
    $('div').hide()
   });

blockUI的使用:

function returnInvoice(no,id){
    $('#backInvoiceNo').val(no);
    $('#backInvoiceId').val(id);
    console.log(no);
    console.log(id);
    var winH = $(window).height();
    var winW = $(window).width();
    var left = (winW -300) / 2;
    var top = (winH ) / 2 + 30;

    $.blockUI({
        message:$('#backInvoice'),
        css:{
            border:'none',
            width: '380px',
            top:top,
            left:left
        }
    });
}
 

 

 

 

基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以找到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
<think>好的,用户想了解前端开发需要学习的技术和工具。首先,我需要整理前端开发的基础技术,比如HTML、CSS和JavaScript,这些都是核心。然后考虑进阶技术,比如框架React、Vue,还有构建工具Webpack、Vite。工具方面,代码编辑器VSCode,调试工具浏览器开发者工具,版本控制Git这些都要提到。还要注意性能优化和跨端开发,比如React Native。另外,用户可能也关心学习路径和资源,可以推荐一些在线课程或实践方法。需要参考之前的引用,确保信息准确,比如引用1提到性能优化和服务器端基础,引用3提到不同公司的职能,引用4有学习资源。最后生成相关问题,帮助用户深入理解。</think>[用户可见层] # 前端开发需要学习的技术和工具 ## 一、核心技术 1. **HTML/CSS** - HTML是网页结构基础,需掌握语义化标签(如`<header>` `<article>`)和表单验证 - CSS实现样式布局,重点学习Flexbox、Grid布局和响应式设计,例如: $$ \text{媒体查询语法:}@media\ (max-width:768px)\{...\} $$ - 预处理器如Sass/Less可提升开发效率[^3] 2. **JavaScript** - 掌握ES6+特性(箭头函数、解构赋值、Promise) - 理解DOM操作、事件循环机制,例如: ```javascript document.querySelector('#demo').addEventListener('click', handler) ``` - 异步编程需熟练async/await和Fetch API[^4] --- ## 二、进阶技术栈 | 类别 | 关键技术 | 典型工具 | |------------|--------------------------|--------------------------| | 框架 | React/Vue/Angular | Redux/Vuex状态管理 | | 构建工具 | Webpack/Vite/Rollup | Babel转译 | | 工程化 | TypeScript/单元测试 | Jest/Cypress测试框架 | | 跨端开发 | React Native/Flutter | Electron桌面应用开发 | --- ## 三、必备工具集 1. **开发工具** - 编辑器:VS Code(推荐安装ESLint、Prettier插件) - 调试工具:Chrome DevTools(性能分析、内存泄漏检测) - 版本控制:Git + GitHub/GitLab(需熟悉分支管理策略)[^1] 2. **协作工具** - 设计对接:Figma/Sketch测量工具 - API调试:Postman/Insomnia - 文档管理:Storybook组件化文档[^3] --- ## 四、拓展能力 1. **性能优化** - 关键渲染路径优化(Critical Rendering Path) - 资源压缩方案(WebP图片、Tree Shaking) - 使用Lighthouse进行评分诊断,例如: $$ \text{性能指标:}FCP < 1.5s,\ TTI < 3.8s $$[^1] 2. **服务端基础** - Node.js实现SSR(如Next.js/Nuxt.js) - 了解RESTful API设计规范 - 基础Linux命令和Nginx配置[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值