javascript

 

JavaScript 参考博客

JavaScript代码的存在形式

  • HTML文件中
<script type="text/javascript">
//JavaScript代码
</script>
  • js文件中,在HTML中引入(可使用远程js文件路径)
    <script src="*.js路径"></script>

  • 浏览器从上到下解释HTML和js代码,为了保证页面首先显示,一般要将CSS文件引入写在head标签中;js代码块和引入写在body内部的最下面。

js注释

  • 双斜杠单行注释//
  • /* 斜杠星,星斜杠,多行注释 */

js变量

  • name='alex'; //全局变量
  • var name='alex'; //局部变量

js基本数据类型

  • 数字
    • js不区分整数和浮点数,所有数字均用浮点数表示
    • parseInt() ,字符串转数字
    • parseFloat() 字符串转浮点
  • 字符串
    字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法。
//常见功能
obj.length                          长度
obj.trim()                          移除空白
obj.trimLeft()
obj.trimRight)
obj.charAt(n)                        返回字符串中的第n个字符
obj.concat(value, …)              拼接
obj.indexOf(substring,start)        子序列位置
obj.lastIndexOf(substring,start)    子序列位置
obj.substring(from, to)              根据索引获取子序列
obj.slice(start, end)                切片
obj.toLowerCase()                    大写
obj.toUpperCase()                    小写
obj.split(delimiter, limit)          分割
obj.search(regexp)                  从头开始匹配,返回匹配成功的第一个位置(g无效)
obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。
obj.replace(regexp, replacement)    替换,正则中有g则替换所有,否则只替换第一个匹配项,
                                    $数字:匹配的第n个组内容;
                                    $&:当前匹配的内容;
                                    $`:位于匹配子串左侧的文本;
                                    $':位于匹配子串右侧的文本
                                    $$:直接量$符号
  • 数组
    JavaScript中的数组类似于Python中的列表
obj.length          数组的大小

obj.push(ele)      尾部追加元素
obj.pop()          尾部获取一个元素
obj.unshift(ele)    头部插入元素
obj.shift()        头部移除元素
obj.splice(start, deleteCount, value, …)  插入、删除或替换数组的元素
                    obj.splice(n,0,val) 指定位置插入元素
                    obj.splice(n,1,val) 指定位置替换元素
                    obj.splice(n,1)    指定位置删除元素
obj.slice( )        切片
obj.reverse( )      反转
obj.join(sep)      将数组元素连接起来以构建一个字符串
obj.concat(val,..)  连接数组
obj.sort( )        对数组元素进行排序
  • 字典
    a = {'k1':'v1','k2':'v2',...}
  • 布尔类型
    布尔类型仅包含真假,与Python不同的是其首字母小写。
    • == 比较值相等
    • !=不等于
    • === 比较值和类型相等
    • !=== 不等于
    • || 或
    • && 且

JSON序列化

  • JSON.stringify(obj) 序列化
  • JSON.parse(str) 反序列化

转义

  • decodeURI( ) URl中未转义的字符
  • decodeURIComponent( ) URI组件中的未转义字符
  • encodeURI( ) URI中的转义字符
  • encodeURIComponent( ) 转义URI组件中的字符
  • escape( ) 对字符串转义
  • unescape( ) 给转义字符串解码
  • URIError 由URl的编码和解码方法抛出

条件语句

if(条件){
…
}else if(条件){
…
}else{
…
}

for循环

a=[11,22,33,44];
//循环数组时,循环的是索引;循环字典时,循环的是key
for(var item in a){
    console.log(a[item]);
}
//循环初始值0,每次+1,大于10结束;字典不支持此种循环
for(var i=0;i<10;i++){

}

函数

function 函数名(参数){
    //函数体
    console.log();//控制台调试打印
}

定时器

<script>
    //创建一个定时器
    setInterval("alert(123);",5000) //第一个参数为要执行的东西,第二个参数是间隔时间(毫秒)
</script>
  • 滚动文字例子
<div id="str">我要滚动,走了,快跑!</div>

<script>
    function gun(){
        var e = document.getElementById('str');
        var content = e.innerText;
        var f = content.charAt(0);
        var l = content.substring(1,content.length);
        var new_content = l+f;
        e.innerText = new_content;
    }
    setInterval("gun();",500)

</script>

Document操作

  • dom选择器
1、直接查找
document.getElementByID('id') //按id获取单个元素
document.getElementsByTagName('div') //按标签名获取多个元素,返回对象数组
document.getElementsByClassName('c1') //按class属性获取多个元素,返回对象数组
document.getElementsByName          //根据name属性获取标签集合

2、简介查找
parentNode          // 父节点
childNodes          // 所有子节点
firstChild          // 第一个子节点
lastChild          // 最后一个子节点
nextSibling        // 下一个兄弟节点
previousSibling    // 上一个兄弟节点
parentElement          // 父节点标签元素
children                // 所有子标签
firstElementChild      // 第一个子标签元素
lastElementChild        // 最后一个子标签元素
nextElementtSibling    // 下一个兄弟标签元素
previousElementSibling  // 上一个兄弟标签元素
  • dom操作
1、内容
标签对象.innerText  //获取标签文本内容
标签对象.innerText = ''   //修改标签文本内容

innerHTML  HTML内容
innerHTML  
value      值

2、属性
attributes                // 获取所有标签属性
setAttribute(key,value)  // 设置标签属性
getAttribute(key)        // 获取指定标签属性

/*
var atr = document.createAttribute("class");
atr.nodeValue="democlass";
document.getElementById('n1').setAttributeNode(atr);
*/

3、class操作
className                // 获取所有类名
classList.remove(cls)    // 删除指定类
classList.add(cls)      // 添加类

4、CSS样式操作
var obj = document.getElementById('i1')
obj.style.fontSize = "32px";
obj.style.backgroundColor = "red";

5、标签操作
//创建标签
// 方式一
var tag = document.createElement('a')
tag.innerText = "wupeiqi"
tag.className = "c1"
tag.href = "http://www.cnblogs.com/wupeiqi"

// 方式二
var tag = "<a class='c1' href='http://www.cnblogs.com/wupeiqi'>wupeiqi</a>"

------------
//操作标签
// 方式一
var obj = "<input type='text' />";
xxx.insertAdjacentHTML("beforeEnd",obj);
xxx.insertAdjacentElement('afterBegin',document.createElement('p'))

//注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'

// 方式二
var tag = document.createElement('a')
xxx.appendChild(tag)
xxx.insertBefore(tag,xxx[1])

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
【资源说明】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 本文介绍了基于QEM(Quadric Error Metrics,二次误差度量)的优化网格简化算法的C和C++实现源码及其相关文档。这一算法主要应用于计算机图形学领域,用于优化三维模型的多边形数量,使之在保持原有模型特征的前提下实现简化。简化的目的是为了提高渲染速度,减少计算资源消耗,以及便于网络传输等。 本项目的核心是网格简化算法的实现,而QEM作为该算法的核心,是一种衡量简化误差的数学方法。通过计算每个顶点的二次误差矩阵来评估简化操作的误差,并以此来指导网格简化过程。QEM算法因其高效性和准确性在计算机图形学中广泛应用,尤其在实时渲染和三维打印领域。 项目代码包含C和C++两种语言版本,这意味着它可以在多种开发环境中运行,增加了其适用范围。对于计算机相关专业的学生、教师和行业从业者来说,这个项目提供了丰富的学习和实践机会。无论是作为学习编程的入门材料,还是作为深入研究计算机图形学的项目,该项目都具有实用价值。 此外,项目包含的论文文档为理解网格简化算法提供了理论基础。论文详细介绍了QEM算法的原理、实施步骤以及与其他算法的对比分析。这不仅有助于加深对算法的理解,也为那些希望将算法应用于自己研究领域的人员提供了参考资料。 资源说明文档强调了项目的稳定性和可靠性,并鼓励用户在使用过程中提出问题或建议,以便不断地优化和完善项目。文档还提醒用户注意查看,以获取使用该项目的所有必要信息。 项目的文件名称列表中包含了加水印的论文文档、资源说明文件和实际的项目代码目录,后者位于名为Mesh-Simplification-master的目录下。用户可以将这些资源用于多种教学和研究目的,包括课程设计、毕业设计、项目立项演示等。 这个项目是一个宝贵的资源,它不仅提供了一个成熟的技术实现,而且为进一步的研究和学习提供了坚实的基础。它鼓励用户探索和扩展,以期在计算机图形学领域中取得更深入的研究成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值