javascript 基础

该博客围绕JavaScript基础展开,介绍了数据类型,如特殊的Number类型值NaN。还阐述了字符串、数组常用方法,以及Math、Date对象等知识。此外,涉及函数、定时器,包括setInterval和setTimeout,同时提及BOM、DOM操作,如查找节点、节点操作和事件等。

数据类型

        number     -----  数值
        boolean    -----  布尔值
        string     -----  字符串
        undefined  -----  undefined
        null       -----   null  
        object ----------- 数组 new Array() 对象 {}

 

注意:

var bResult = "25" < 3;
alert(bResult); //输出 "false"

NaN:
var d="yuan"; d=+d; alert(d);//NaN:属于Number类型的一个特殊值,当遇到将字符串转成数字无效时,就会得到一个NaN数据 alert(typeof(d));//Number

字符串常用方法

x.length         ----获取字符串的长度
x.toLowerCase()        ----转为小写
x.toUpperCase()        ----转为大写
x.trim()               ----去除字符串两边空格       
x.charAt(index)         ----单个字符,获取指定位置字符,其中index为要获取的字符索引
x.indexOf(findstr,index)----查询字符串位置 获得第一个找到的位置索引返回
x.lastIndexOf(findstr)  
x.slice(start, end)     ----切片操作字符串
x.replace(findstr,tostr) ----    字符串替换
x.split();                 ----分割字符串

数组

创建方式 1
var arr1=[1,2,3,4,5,6]
创建方式 2
var arr1= new Array(1,2,3,4,5,6)
创建方式 3 
var arr1=new Array(10)

//********************************
常用方法
1  concat [1,2].concat(1,2)-----[1,2,1,2]     concat [1,2].concat([1,2])-----[1,2,1,2]
   concat [1,2].concat([[1,2]])-----[1,2,[1,2]]  二维数组
2 join("")------- 按指定字符串拼接 [1,2].join()-----> "1,2"   [1,2,3].join("+")----->1+2+3
3 reverse 反转数组  [1,2,3,1].reverse()-------->[1,3,2,1]
4 sort  给数组排序 [22,33,4,8,2,7].sort()------>[2, 22, 33, 4, 7, 8] 这默认是按第一位排序
我们想要排序需要写个函数 例如: return a-b   如果a-b 升序 b-a 降序
[22,33,4,8,2,7].sort(function(a,b){return a-b})-------->[2, 4, 7, 8, 22, 33] 
5 slice(start,end)--------->与字符串差不多 
可以拷贝数组 并不是同一个地址哦
方式 一:
var arr1=[1,2,3]
var arr2=arr1.slice()
arr1[0]=999
arr1 -------- [999, 2, 3]   
arr2 -------- [1, 2, 3]
方式 二:
arr3=arr1.slice(0,arr1.length)

6 splice(start, deleteCount, value, ...)--------具有增删改的功能强大,会修改原数组并返回删除的值

7 push ------ 在数组的最后添加一个元素 , 类似于python的 append    (压栈)
8 pop  -------  弹出数组的最后一个元素                            (弹栈)
9 shift ------- 删除数组的第一个元素
10 unshift ------ 在数组的头添加元素
11 indexof -------- 与字符操作类似

Math对象

abs(x)    返回数的绝对值。
exp(x)    返回 e 的指数。
floor(x)对数进行下舍入。
log(x)    返回数的自然对数(底为e)。
max(x,y)    返回 x 和 y 中的最高值。
min(x,y)    返回 x 和 y 中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    把数四舍五入为最接近的整数。
sin(x)    返回数的正弦。
sqrt(x)    返回数的平方根。
tan(x)    返回角的正切。

Date对象

getDate()                 获取日
getDay ()                 获取星期
getMonth ()               获取月(0-11)
getFullYear ()            获取完整年份(推荐使用)
getYear ()                获取年
getHours ()               获取小时
getMinutes ()             获取分钟
getSeconds ()             获取秒
getMilliseconds ()        获取毫秒
getTime ()                返回累计毫秒数(从1970/1/1午夜)(时间戳)

函数

// 定义一个函数
function fun(a,b){
    return a+b
}
// 匿名函数
var fun2 = function(){
				console.log(1)
			}
			fun2()
// 自运行函数/自执行函数
(function(){
		console.log(2)
})()
// 函数嵌套
function f1(){
    console.log('f1');			
		function f2(){
	    	console.log('f2');
	}
	return f2;
}
f1()()  // 相当于f2()
// 传参
var f6 = (function (a){
	console.log('f5, a=' + a);			
	return function(b){
		console.log('f6, b=' + b);
	}
})(10)	
f6(20)

// 构造函数  创建类的东西
function MyClass(Object){
    this.name='alex'
    this.age=18
}
// 实例化对象
m1 = new MyClass();
m1.age ------>18

 

 

定时器

 

 var timer = setInterval( function(){},1000);

# 一次性

var timer = setTimeout( function(){},1000);

     clearInterval(timer);

 

 

 

BOM

 

 

DOM

查找节点

       getElementById():  获取特定ID元素的节点对象(返回一个对象)
       getElementsByTagName():  获取指定标签名的节点列表(返回一个数组)
       getElementsByName():  获取相同name属性值的节点列表(返回一个数组)
       getElementsByClassName()


// 节点属性
tagName 标签名
innerHTML 节点内容
className  class的值
style   css 样式对象
children 所有的子元素节点
value  input 的value

this:表示当前操作对象

节点操作

createElement()创建一个元素节点
appendChildren()追加一个子节点
createTextNode()创建一个文本节点

insertBefore()将新节点插入到某个节点中
replaceChild() 节点的替换  (new node , old node)

cloneNode()节点的克隆
removeChild()删除节点

事件

鼠标事件


onclick() 
dbclick()
onmousedown()
onmouseup()
onmousemove()
onmouseleave()
onmouseenter()

 

 

 

**项目名称:** 基于Vue.js与Spring Cloud架构的博客系统设计与开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学与技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存与会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署与运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户与内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发与部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡与熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值