首页 > 编程语言 >JavaScript

JavaScript

时间:2023-07-15 22:23:29浏览次数:38  
标签:console log JavaScript let typeof var document

html

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
  <meta name="author" content="weiyupeng">
  <meta name="time" content="2023/7/10 20:23">
  <meta charset="UTF-8">
  <title>Java Script</title>
</head>
<script>
  document.write("<h1>标题</h1>");
  document.write("<p>段落</p>");
  // 改变内容
  function f1() {
    const x = document.getElementById("para1");
    x.innerHTML="Hello JS !"
  }
  // 改变图像
  function changeImg() {
    const element = document.getElementById("img1");
    if (element.src.match("img1")) {
      element.src = "../image/img2.png";
    } else {
      element.src = "../image/img1.png";
    }
  }
  // 改变样式
  function changeStyle() {
    const element = document.getElementById("para2");
    element.style.color="green";
  }
  // 验证输入
  function checkNum() {
    const value = document.getElementById("input1").value;
    if (isNaN(value)) {
      alert("不是数字!");
    }
  }
</script>
<body>
<!--点击响应-->
<button type="button" onclick="alert('欢迎!')">点我!</button>

<p id="para1">Hello World !</p>
<button type="button" onclick="f1()">点我!</button><br>

<img id="img1" src="../image/img1.png" width="100" height="100">
<button type="button" onclick="changeImg()">换图片</button>

<p id="para2" style="color: red">段落</p>
<button type="button" onclick="changeStyle()">换颜色</button><br><br>

<input id="input1">
<button type="button" onclick="checkNum()">验证</button>

<!--连接外部js-->
<script src="../js/demo01.js"></script>
<p id="para33" onclick="f2()">点我</p>

<!--事件-->
<!-- 格式 <some-HTML-element some-event="JavaScript 代码"/> -->
<button onclick="function2()">function2</button><br><br>
<!--
  常用事件:
    onchange	HTML 元素改变
    onclick	用户点击 HTML 元素
    onm ouseover	鼠标指针移动到指定的元素上时发生
    onm ouseout	用户从一个 HTML 元素上移开鼠标时发生
    onkeydown	用户按下键盘按键
    onl oad	浏览器已完成页面的加载
  全部事件:
    https://www.runoob.com/jsref/dom-obj-event.html
-->

<!--提交验证-->
<input id="numb">
<button type="button" onclick="f7()">提交</button>
<p id="demo3"></p><br><br>

<!--验证API-->
<input id="id1" type="number" min="0" max="100" required>
<button onclick="f8()">提交</button>
<p id="demo2"></p><br><br>
<script>
  function f8() {
    let inpObj = document.getElementById('id1');
    if (inpObj.checkValidity()) {
      document.getElementById('demo2').innerText = '输入正确';
    } else {
      document.getElementById('demo2').innerText = inpObj.validationMessage;
    }
  }
</script>
<input id="id2" type="password" minlength="6" maxlength="16">
<button onclick="f9()">提交</button>
<p id="demo4"></p><br><br>
<script>
  function f9() {
    let inpObj = document.getElementById('id2');
    if (inpObj.checkValidity()) {
      document.getElementById('demo4').innerText = '输入正确';
      console.log('hello1111')
    } else {
      document.getElementById('demo4').innerText = inpObj.validationMessage;
      console.log('hello2222')
    }
  }
</script>

<!--void 代表没 不返回值-->
<a href="javascript:void(0)">单击此处什么也不会发生</a><br><br>
<a href="javascript:void(alert('Warning!!!'))">点我!</a><br><br>

<!--异步-->
<p id="demo5">hello</p>
<script>
  function f10() {
    document.getElementById('demo5').innerHTML = '<h1>hello</h1>'
  }
  // 三秒后执行
  setTimeout(f10, 3000);
</script>

</body>
</html>

javascript

/**
 * @Author: weiyupeng
 * @DateTime: 2023/7/10 20:20
 */

/*输出*/
//警告
// window.alert("警告");
//操作html元素
function f2() {
    document.getElementById("para33").innerHTML="外部 JavaScript 函数";
}
//写入
document.write("<br><br>"+new Date())
//写到控制台
console.log("控制台输出123")

/*语法*/
//Number
let number = 123;
number = 1.23
number = 123e4;
number = new Number(1);
number = Number(2);
//String
let str = 'abc'
str = "ABC"
let char1 = str[2] // C
let len = str.length // 很多函数和java一样
let text = `line1 多行文本
line2
line3
`
console.log(text)
//计算表达式
let multi = number * 10
multi = multi + 10
multi += 10
//数组
let arr = [1, 2, 3, 4, 5]
//对象
let obj = {name:'weiyupeng', age:27}
//函数
function myFunction(a, b) {
    return a * b;
}
// 变量:var是函数作用域,而let是块作用域
var name, age;
name = 'weiyupeng'
age = 27

/*数据类型*/
// 值类型(其实也是对象):String Number Boolean Null Undefined Symbol
// 对象类型:Object Array Function RegExp(正则) Date

// 查看数据类型
console.log(typeof true)
console.log(typeof [true, 123, 'qwe'])

// 数组
var arr2 = new Array()
arr2[0] = 123
arr2[1] = 'qwe'

// 对象,用json定义
var person = {
    name    :   'weiyupeng',
    age     :   27,
    // 对象内方法
    f1      :   function () {
        return 'function2 in person'
    },
    f2      :   function (s1, s2) {
        return "" + s1 + s2;
    }
}
person.age = 28
console.error(person.name)
console.info(arr2)
console.info(person.f1())
console.info(person.f2('qwe', '123'))

// Undefined
var a
console.log(typeof a) // Undefined
// Null
a = null
console.log(typeof a) // Object

// 声明新变量用 new 关键字
var carname = new String;
var x = new Number;
var y = new Boolean;
var car2 = new Array;
var person2 = new Object;

/*变量作用域*/
// window变量的属性,window可省略
var3 = 123
window.var3 = 123

function function2() {
    // 全局变量
    window.var4 = 123
    // 声明的就是局部变量
    let var5 = 234;
    console.count('qwe')
    console.log(typeof var4)
    console.log(Date())
    console.log(typeof 'Sat Jul 15 2023 15:51:50 GMT+0800') // string
}
let var5 = window.var4
// console.log(var4) // 报错 var4 is not defined
console.log(window.var4)
console.log(var5)

/*运算符*/
var var6 = 1;
console.log(var6 == 1) // true
console.log(var6 == '1') // true
console.log(var6 === 1) // true
console.log(var6 === '1') // false
console.log(var6 !== 1) // false
console.log(var6 !== '1') // true

console.log(undefined == null) // true
console.log(undefined === null) // false

/*typeof*/
typeof "John"                 // 返回 string
typeof 3.14                   // 返回 number
typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [1,2,3,4]              // 返回 object
typeof {name:'John', age:34}  // 返回 object
typeof new Date()             // 返回 object
typeof function () {}         // 返回 function
typeof myCar                  // 返回 undefined (如果 myCar 没有声明)
typeof null                   // 返回 object

/*constructor*/
"John".constructor                 // 返回函数 String()  { [native code] }
(3.14).constructor                 // 返回函数 Number()  { [native code] }
false.constructor                  // 返回函数 Boolean() { [native code] }
let arr3 = [1,2,3,4]
arr3.constructor              // 返回函数 Array()   { [native code] }
const o = {name: 'John', age: 34};
o.constructor  // 返回函数 Object()  { [native code] }
new Date().constructor             // 返回函数 Date()    { [native code] }
function f99() {}
f99.constructor         // 返回函数 Function(){ [native code] }

/*正则表达式*/
let patt = /js/i // js为表达式主体,i是修饰符(代表不区分大小写)
console.log('Hello Js !'.search(patt)) // 输出下标 6
console.log('Hello Css !'.search(patt)) // 输出 -1
console.log('Hello Js !'.search('Js')) // 输出 6
console.log('Hello Js !'.search('js')) // 输出 -1
console.log(patt.test('Hello Js !')) // 输出 true
console.log(patt.exec('Hello Js !')) // 输出 ['Js', index: 6, input: 'Hello Js !', groups: undefined]
let patt2 = new RegExp(/js/gi)
console.log('Hello Js js Js !'.search(patt2)) // 输出 6

/*
常见tips:
    1.switch 语句会使用恒等计算符(===)进行比较
    2.var x = 10 + "5";    // x 的结果为 "105",只要有string,结果就是string
    3.精度问题:
        var x = 0.1;
        var y = 0.2;
        var z = x + y            // z 的结果为 0.30000000000000004
        if (z == 0.3)            // 返回 false
      解决:用整数的乘除法
        var z = (x * 10 + y * 10) / 10;       // z 的结果为 0.3
    4.字符串断行要用反斜杠
        var x = "Hello \
        World!";
    5.数组可用名字作为索引,字典?
        var person = [];
        person["firstName"] = "John";
        person["lastName"] = "Doe";
        person["age"] = 46;
        var x = person.length;         // person.length 返回 0
        var y = person[0];             // person[0] 返回 undefined
        var z = person["lastName"]     // person["lastName"] 返回 "John"
    6.程序块作用域:
        for (var i = 0; i < 10; i++) {
            // some code
        }
        return i;
        // i 对于这个函数是全局的,作用域不像别的语言一样套娃
*/

/*表单*/
function f7() {
    let x, text;

    // 获取 id="numb" 的值
    x = document.getElementById("numb").value;

    // 如果输入的值 x 不是数字或者小于 1 或者大于 10,则提示错误
    if (isNaN(x) || x < 1 || x > 10) {
        text = "输入错误";
    } else {
        text = "输入正确";
    }
    document.getElementById("demo3").innerHTML = text;
}

/*验证API*/
// 见html

/*
this关键字:
    在方法中,this 表示该方法所属的对象。
    如果单独使用,this 表示全局对象。
    在函数中,this 表示全局对象。
    在函数中,在严格模式下,this 是未定义的(undefined)。
    在事件中,this 表示接收事件的元素。
    类似 call() 和 apply() 方法可以将 this 引用到任何对象。
*/

/*let 与 var 区别*/
var x = 10;
// 这里输出 x 为 10
{
    var x = 2;
    // 这里输出 x 为 2
}
// 这里输出 x 为 2

var y = 10;
// 这里输出 y 为 10
{
    let y = 2;
    // 这里输出 y 为 2
}
// 这里输出 y 为 10

/*JSON*/
// JSON Object
var json = {
    "name"  :   "weiyupeng",
    "age"   :   27
}
// JSON Array
var jsonArr = [
    {"name":"weiyupeng1","age":27},
    {"name":"weiyupeng2","age":28},
    {"name":"weiyupeng3","age":29}
]

标签:console,log,JavaScript,let,typeof,var,document
From: https://www.cnblogs.com/peng8098/p/vue04.html

相关文章

  • 10.JavaScript原型,原型链有什么特点
    10.JavaScript原型,原型链?有什么特点?在js中我们是使用构造函数来新建一个对象的,每一个构造函数的内部都有一个prototype属性值,这个属性值是一个对象,这个对象包含了可以由该构造函数的所有实例共享的属性和方法。当我们使用构造函数新建一个对象后,在这个对象的内部将包含......
  • JavaScript at() 方法
    数组对象:对于获取数组的最后一个元素,可能平常见得多的就是arr[arr.length-1],我们其实可以使用at()方法进行获取接收一个整数值并返回该索引对应的元素:constarr=[5,12,8,130,44];letindex1=2;strt1=`索引号为${index1}的值为${arr.at(index1)}`;letind......
  • 【javascript】关于文件下载
    通常在a标签href属性后加上请求下载文件的地址,页面点击即可下载,该种方式是交由浏览器去下载,但是无法监听下载进度若通过AJAX请求,则需要对其进行解析,通常将数据转为blob,然后模拟a标签点击事件,但是此方法如果文件过大,接口调用时超出ajax的timeout时长,会下载失败......
  • 【JavaScript】你真的熟悉bind吗
    引言内容速递看了本文您能了解到的知识!在本篇文章中,将带你了解什么是bind,bind的用途、如何手写bind以及工作中实际使用bind的场景。在JavaScript中,bind()方法是用来创建一个新函数,并将其绑定到指定的对象上,从而在调用该函数时确保函数中的this关键字指向绑定的对象。1、什......
  • 【JavaScript】js 处理复制函数实现
    exportconstcopyText=(text:string)=>{constinput=document.createElement('input');input.setAttribute('readonly','readonly');input.setAttribute('value',text);document.body.appendChild(input);......
  • ASP.NET Core SignalR 系列(三)- JavaScript 客户端
    本章将和大家分享ASP.NETCoreSignalR中的JavaScript客户端。ASP.NETCoreSignalRJavaScript客户端库使开发人员能够调用服务器端SignalR中心代码。本文大部分内容摘自微软官网:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore......
  • JavaScript 中获取数组最后一个元素3种方法及性能
    当需要从JavaScript中的数组中获取最后一个元素时,有多种选择,本文将提供3种可用方法。1.数组length属性length属性返回数组中元素的数量。从数组的长度中减去1得到数组最后一个元素的索引,使用它可以访问最后一个元素。从长度中减去1的原因是,在JavaScript中,数组索引......
  • JavaScript
    引入JavaScript1.内部标签<script></script>2.外部引用<scriptsrc="引入JavaScript.js"></script>浏览器控制台使用1.alert(弹窗)alert();2.console.log(控制台打印)console.log();数据类型1.等于和绝对等于==等于(类型不一样,值相等,判断为true)===绝......
  • 如何掌握JavaScript面向对象开发相关模式?
    本文学习目标:理解面向对象开发思想掌握JavaSciprt面向对象开发模式不管是JavaScript高级还是针对JavaScript语言本身的一个进阶学习,在开始之前我们先来对JavaScript相关知识点做一个回顾总结。一、JavaScript是什么1.1解析执行:轻量级解释型的语言特点:动态、头等函数(First-classFu......
  • JMeter脚本报错:Cannot find engine named: 'javascript'的解决方法
    本文将介绍如何解决在JMeter版本5.4.1下执行脚本时出现的错误信息“javax.script.ScriptException:Cannotfindenginenamed:'javascript'”。通过将本地JDK版本从18.0.1.1更改为1.8.0_151来解决此问题。当使用JMeter进行脚本执行时,有时可能会遇到以下错误信息:javax.script......