HTML三把利剑之一,浏览器具有解析js的能力

一、js基础

在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时,按照CSS规则解释,遇到Script标签时,按照JavaScript的语法规则解释。

引入JavaScript代码,类似于Python的import

<script src="public.js" type="text/javascript"></script>

head中引入JS与body中引入JS区别

html代码从上而下解析,如果在head中引入JS,影响页面打开的速度,存在风险,所以通常放在htmlbody的最下方,这样页面内容先展示,最后在加载JS。注:写在最下面要有底线,写在body内部的最底下。

注释

单行注释通过 //  多行通过 /* */

1.1 js变量

const a = 1//定义常量,不可以修改
let name = 'xiaolin'//定义变量,没有预解析
var name1 = 'xiaoxiaolin'//定义变量,预解析,提前给定义为undefined,

1.2 字符串

//定义字符串
var str = '你开心就好';
var name='疯狂的石头';
//字符串的拼接
var name_str = name+str;
//字符串操作
str.charAt(0)//根据角标获取字符串中的某一个字符 char字符
str.substring(1,3) //根据角标获取 字符串子序列 顾头不顾尾(大于等于x 小于y )
str.length //获取字符串长度
str.concat('五月天') //拼接字符串
str.indexOf('五月')//获取子序列的位置
str.slice(0,1)//切片 开始,结束 顾头不顾尾
str.toLowerCase()//变为小写
str.toUpperCase()//变为大写
str.split(',')//以指定的字符串进行分割,返回数组,参数2为取分割后数组的前多少个元素

1.3 数字类型

var age=19;
var score = 89.5;
number = '18';
//字符串转换
var n = parseInt(number);
//转换为小数
f = parseFloat(number);
//布尔类型
var t = true;
var f = false;

1.4 数组类型

// 第一种创建方式
var list = new Array();
list[0] = '李四';
list[1] = '王五'; // 第二种创建方式
var list2 = new Array('李四','王五'); // 第三种创建方式
var list3 = ['李四','牛教授']; 数组操作
var list4 = ['李四','王五']; list3.length;// 数组的长度 list3.push('dsx');// 尾部追啊参数 list3.shift();// 头部获取一个元素 并删除该元素 list3.pop();// 尾部获取一个元素 并删除该元素 list3.unshift('dsx');// 头部插入一个数据 list3.splice(start, deleteCount, value);// 插入、删除或替换数组的元素 list3.splice(n,0,val) ;//指定位置插入元素 list3.splice(n,1,val);// 指定位置替换元素 list3.splice(n,1);// 指定位置删除元素 list3.slice(1,2);// 切片; list3.reverse() ;//反转 list3.join('-') ;//将数组根据分割符拼接成字符串 list3.concat(['abc']);// 数组与数组拼接 list3.sort() ;//排序

1.5 对象类型(等同于Python的字典)

var dict = {name:'dsx',age:18,sex:'男' };
var age = dict.age;
var name = dict['name'];
delete dict['name'] 删除
delete dict.age 删除

1.6 js条件判断语句

var score = 89
if(score>=90){
console.log('优秀')
}else if(score>=80 && score<90){
console.log('良好')
}else if(score>=60 && score<80){
console.log('中等')
}else{
console.log('不及格')
} switch (score) {
case 90:
console.log('优秀')
break;
case 80:
console.log('良好')
break;
default;

1.7 js循环语句

//第一种循环
//循环的是角标
tmp = ['宝马', '奔驰', '尼桑'];
tmp = '宝马奔驰尼桑';
tmp = {'宝马': 'BMW', '奔驰': 'BC'};
for (var i in tmp) {
console.log(tmp[i])
}
//第二种循环
//不支持字典的循环
for (var i = 0; i < 10; i++) {
console.log(tmp[i])
}
//第三种循环
while (1 == 1) {
console.log(111)
}

1.8函数

// 普通函数
function funcName(name,age) { }
funcName('lis',78); //匿名函数,函数即变量
var funcNameTwo = function(){ };
funcNameTwo()

二、DOM

DOM(Document Object Model 文档对象模型)

一个web页面的展示,是由html标签组合成的一个页面,dom对象实际就是将html标签转换成了一个文档对象。可以通过dom对象中js提供的方法,找到html的各个标签。通过找到标签就可以操作标签使页面动起来,让页面动起来。

2.1 获取标签

//直接获取标签
document.getElementById('id1');//根据id获取标签
document.getElementsByName('elname');//根据属性name获取标签数组
document.getElementsByTagName('div');//根据标签名称获取标签数组
document.getElementsByClassName('c1');根据属性class获取标签数组 //间接获取标签
var temp = document.getElementById('id1');
temp.parentElement;//父节点标签元素
temp.children;//所有子节点
temp.firstElementChild;//第一个子标签元素
temp.lastElementChild;//最后一个标签元素
temp.nextElementSibling;//下一个兄弟标签元素
temp.previousElementSibling;//上一个兄弟标签元素

2.2 文本内容操作

//文本内容操作:
// innerHTML和innerText
temp.innerText;//获取标签中的文本内容
temp.innerHTML;//获取标签中的所有内容,包括html代码
temp.innerText='fdsfsfs';//修改标签中的文本内容
temp.innerHTML='<input type="text">fdsfsfs</input>'//可以将html格式的字符串变为标签 //input textarea标签
temp.value;//获取input,textarea的值
temp.value='fdsfsfs';//修改input,textarea的值 //select标签
tmp.value; //获取select标签的value参数
tmp.value = '选项' // 修改select选项
tmp.selectedIndex; // 获取select标签的选项下标
tmp.selectedIndex = 1 // 通过下标更改select的选项

2.3 事件

<!--    直接绑定-->
<input type="button" id="b1" onclick="show()">
function show() {
alert('fdsfsdlfsjflskjdf')
} <!--间接绑定-->
<input type="button" id="b2" >
var b2 = document.getElementById('b2');
b2.onmouseover = function () {
b2.style.backgroundColor='red'
} // 间接绑定的this代指,getElementById找到的这个标签
var obj = document.getElementById('b2');
obj.onmouseout = function () {
this.style.background = '';
}

最新文章

  1. PAT 1047. 编程团体赛(20)
  2. java基础 布局管理器
  3. Python中内置数据类型list,tuple,dict,set的区别和用法
  4. JavaScipt 样式操作
  5. ScrollView左右约束的坑
  6. IOS之同步请求、异步请求、GET请求、POST请求
  7. JSP的笔记
  8. 一个Notification 进度条插件(android,NJS实现,直接就可使用)
  9. 相册弹窗(基于zepto.js)
  10. linux 下安装jdk及配置jdk环境图解
  11. 你知道OneNote的OCR功能吗?office lens为其增大威力,中文也识别
  12. java初级开发一系列的工具安装配置
  13. es6 字符串的扩展和数值的扩展
  14. CentOS 7 系统基础配置
  15. 一小时上手Java 8新特性
  16. 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 0.Practice questions:Recurrent Neural Networks
  17. HDU 1850 Being a Good Boy in Spring Festival (Nim博弈)
  18. How many Fibs?(poj 2413)大数斐波那契
  19. Python Web笔记之高性能网络编程
  20. [转载]一步一步教你如何在Virtualbox虚拟机中安装Remix

热门文章

  1. OneFlow系统设计
  2. GPU上如何优化卷积
  3. UiPath 中 List 集合的实例化与使用
  4. 【VBA】一些判断
  5. Vue.js的基础学习
  6. Devops 改变coding —— 安装个指定版本的 jenkins 发现和想象的不太一样?
  7. PING命令执行漏洞-绕过空格
  8. Java基础篇(JVM)——类加载机制
  9. SpringCloud Alibaba实战(11:引入服务网关Gateway)
  10. linux密码策略