WEB--javaScript基础

3种引用方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../static/css/demo.css" type="text/css">
    <!-- 方式2 头部嵌入-->
    <script>alert('你好')</script>
    <!-- 方式3 外链式 -->
    <script type="text/javascript"  src="../static/js/demo.js"></script>
</head>
<body>
    <!-- 方式1 行内嵌入式-->
    <a href="https://www.baidu.com"  onclick="alert('您将要跳转到百度')">百度</a>
</body>
</html>

变量命名

命名方式:建议小驼峰,且 js大小写敏感

// 变量命名
var sss='zhangsan'
// 一般采用小驼峰
var studentName = 'lisi'

var age
age = 18

// 控制台输出
console.log(sss)
console.log(studentName)
console.log(age)

数据类型

js是弱类型语言,比python还要弱。
js数据类型:数字类型、字符串、数组、null、undefined、boolean

// number
var a=100;
console.log(typeof(a));

// string
var str = 'hello';
console.log(typeof(str));

// boolean
var s = true;
console.log(typeof(s));

// Array

var aList =  Array(1, 2, 3, 4, 5);

console.log(aList);
console.log(aList.length);


aList.push('a');    // 列表最后新增元素
console.log(aList);

aList.pop();  // pop() 删除列表最后一个
aList.pop();
console.log(aList);

// null
var c = null;

console.log(c);

// undefined

var d;
console.log(d)

运算符

  • 算数运算符
// 算数运算符
var a = 3;
var b = 2;

c = a + b
d = a - b
e = a * b
f = a / b
g = a % b 
console.log(c)
console.log(d)
console.log(e)
console.log(f)
console.log(g)
  • 赋值运算符
// 赋值运算符

var a = 3
console.log(a)

a += 1 
console.log(a)

a -= 2
console.log(a)

a *= 2
console.log(a)

a /= 2
console.log(a)

a %= 2 
console.log(a)

// a++与++a:原理还是运算符的优先级不同
// a++是表示先把值赋给其他为数字类型的变量,自己再+1

var a = 5  

b = a ++

console.log(a)  // 6
console.log(b)  // 5

// ++a是自己先+1,再把值赋给数字类型的变量

var c = 5  

d = ++ c

console.log(c)  // 6
console.log(d)  // 6
  • 条件运算符
// 条件运算符

// ==: 先检查数据类型,相同则进行===比较, 不同则转换成相同类型后再进行比较
// ===: 先检查数据类型,不同直接false
var a = 3
var b = '3'
console.log(a == b)  // true
console.log(a === b) // false

var c = 5
console.log(a < c)   // true
console.log(a > c)   // false
console.log(a <= c)   // true
console.log(a >= c)   // false
console.log(a != c)  // true
  • 逻辑运算符
// 逻辑运算符
var a = 6
var b = 3

// 且 , &&前面是false,返“&&”前面的值,否则返回后面的值
console.log(a&&b)   //3
console.log(b&&a)   //6

// 或,  ||前面是false,返“||”后面的值,否则返回前面的值
console.log(a||b)   //6
console.log(b||a)   //3


// 非 
console.log(!(a == b)) // true

条件语句

  • if条件语句
// 语法
if (condition1) {
    
    
    如果 condition1 为 true 执行该代码块
} else if (condition2) {
    
    
    如果 condition1 为 false 且 condition2 为 true 执行该代码块
} else {
    
    
    如果 condition1 为 false 且 condition2 为 false 执行该代码块
}
var a = 4
 
if (a < 5){
    
    
    alert('小于5');
}else if (a > 5){
    
    
    alert('大于5');
}else{
    
    
    alert('等于5');
}
  • switch条件判断
// switch条件判断
var a = 4
var b = 4
 
switch (a + b){
    
    
    case 5:
        alert('等于5');
        break
    case 6:
        alert('等于6');
        break
    case 7:
        alert('等于7');
        break
    default:
        alert('都对不上')
        break
}

循环

  • while循环
var i = 0;
while (i<10){
    
    
    console.log(i);
    i++;
}
  • for循环
for (var j=0;j<10;j++){
    
    
    console.log(j)
}
  • for in
// Array
var aList = Array(11,22,33,44)
for (i in aList){
    
    
    console.log(i)   // 打印序列索引
    console.log(aList[i])  // 打印列表索引对应的数值
}

// object

var objA = {
    
    
    name: '张三',
    age: 18,
    gender: '男'
}


for (i in objA){
    
    
    console.log(i)   // 输出对象属性
    console.log(objA[i])   // 输出对象属性值
}

函数

// 如果缺少return,则现实undefied
function m(){
    
    
    return 3
}


function  add(a, b){
    
    
    return a + b
}

对象

  • 定义对象
// 方式一
var objA = new Object()

// 方式二
var objB = {
    
    }
  • 对象属性和方法
function  add(a, b){
    
    
    return a + b;
    }

var objC = {
    
    
    name: 'zhangsan', 
    age: 18, 
    address: 'wuhan', 
    func: add
    };
// 属性操作:  objC.name 或 objC["name"]
// 访问方法:  objC.func(2, 3)

DOM及Element元素操作

DOM: Document Object Model,文档对象模型。html页面加载之后会自动生成文档对象模型DOM

获取页面标签

  • 可以通过id、class、tag 3种常用
<script type="text/javascript">
    // window.onload 页面加载完成了之后再执行
    window.onload = function (){
    
    
        // 通过id选择
        var box1 = document.getElementById('box1');
        console.log(box1)
        box1.style.background = 'red';

        // 通过ClassName选择,返回结果集列表
        var box2 = document.getElementsByClassName('box2')[0];
        console.log(box2);

        // 通过TagName选择,返回结果集
        var box = document.getElementsByTagName('div');  // demo.html:17 HTMLCollection(5) [div#box1, div.box2, div, div, div, box1: div#box1]
        console.log(box);
    };
  • 获取标签注意问题

html顺序从上往下加载,当元素节点还未解析时,获取元素会出现undifined问题。解决方案1: 将对应js脚本放到页面最下面,等待页面加载完成后再执行;方案2: 放入window.onload触发的函数里就可以了。

操作标签内容

.innerHTML: 读取节点内html
.innerText: 读取节点内文本

<script type="text/javascript">
    window.onload = function (){
    
    
        // 获取html标签内容
        var box1Content = document.getElementById('box1').innerHTML;  //输出标签之间的所有内容
        var box1Text = document.getElementById('box1').innerText;  // 输出标签内的文本内容
        console.log(box1Content)
        console.log(box1Text)

        // 获取html标签内的文本内容

        // 修改html标签内容
        box1Content = '替换的内容'
        console.log(box1Content)
    };
</script>

修改标签属性

  • 获取标签属性

方式1: .属性名
方式2: ['属性名']

  • 修改标签属性

方法: 先获取标签属性,并对标签属性重新赋值

<script type="text/javascript">
    window.onload = function (){
    
    
        // 获取html中对象
        var box1 = document.getElementById('box1');
        // 通过.方式获取属性值
        var classValue = box1.className;
        console.log(classValue)
        // 通过[]方式获取属性值
        var idValue = box1['id']
        console.log(idValue)

        // 修改
        box1.className = 'box1Class';
        console.log(classValue)
        box1['id'] = 'box1Id';
        console.log(box1.id)

    };
    </script>

onclick事件

function func1(){
    
    
    var box1 = document.getElementById('box1')
    box1.style = "background-color: red; width: 100px; height: 100px"
}


<div id='box1' onclick="func1()" style="width: 80px; height: 80px; background-color: blue;"></div>

猜你喜欢

转载自blog.csdn.net/qq_25672165/article/details/112346240