首页 > 编程语言 >JavaScript初了解

JavaScript初了解

时间:2024-04-17 20:02:10浏览次数:30  
标签:const log age JavaScript 了解 console zhangsan name

最近想写一个web应用,打算稍微学一下。

本文是个人在学习过程中的笔记,目的是分享。

本文的阅读对象是已经有一门编程语言的基础,想进一步大致了解JS语言的读者
本文章不适合完全零基础且对前端毫无概念的伙伴。

1、变量和数据类型

//number数值型
var myNum = 10
//字符型
var myStr = 'abc'
//String字符串型
var myName = "zhangsan"
//boolean布尔型
var myBool = true
//空
var myNull = null
//undefiend变量未定义
var myUn

//控制台打印
console.log(myName)

2、运算

var sum = 2 + 3

var resultStr = 'Hello ' + 'World'

var isTrue = 3 > 2

console.log(3 === '3')

3、逻辑分支

if (2 > 1) {
    console.log("run....")
}

var age = 18
if (18 >= age) {
    console.log("少年")
} else if (18 < age <= 35) {
    console.log("青年")
} else if (35 < age <= 60) {
    console.log("中年")
} else {
    console.log("老年")
}

var result = 0
for (var i = 0; i < 100; i++ ) {
    if (i % 2 === 0) {
        result = result + i
    }
}
console.log(result)

4、函数

function getSum() {
    console.log("start")
    var result = 0
    for (var i = 0; i < 100; i++ ) {
        result = result + i
    }
    return result
    console.log("end")
}
getSum()


function getSumWithCondition(start, end, fn){
    var sum = 0
    for (var i = start;i <= end; i++) {
        if (fn(i)) {
            sum += i
        }
    }
    return sum
}
var result = getSumWithCondition(1, 100, function(n) {
    if (n % 2 ===0) {
        return true
    }
    return false
})
console.log(result)

5、数组

var myArray = [1,2,3,4,5]
console.log(myArray.length)
console.log(myArray[0])
myArray.push(6)
myArray.unshift(0)

myArray.forEach(function (item, index) {
    console.log(item, index)
})

6、对象

var obj = {
  name: "zhangsan",
  age: 18
}
console.log(obj)
> {name: 'zhangsan', age: 18}
console.log(obj.name)
> zhangsan
console.log(obj['name'])
> zhangsan

for (var k in obj) {
  console.log(obj.name)
}
> zhangsan

7、ES6

//1、变量与常量
let num = 10
const BASE_URL = "http://open.ai"


//2、模版字符串
const str1 = 'abc'
const str2 = `${str1}efg`


//3、解构赋值
const [a, b, c] = [1, 2, 3]
console.log(a,b,c)

const {name: userName, age, ...otherInfo} = {
    name: "zhangsan",
    age: 18, 
    mail: "[email protected]",
    gender: "male"
}
console.log(userName,age,otherInfo)
> zhangsan 18 {mail: '[email protected]', gender: 'male'}

//4、数组和对象的扩展
//4、1扩展运算符
const arr1 = [1,2,3]
const arr2 = [4,5,6]
const arr3 = [...arr1, ...arr2, 7, 8]
console.log(arr3)
> [1, 2, 3, 4, 5, 6, 7, 8]

const obj1 = {
  a: 1
}
const obj2 = {
  b: 2
}
const obj3 = {
  c: 3,
  ...obj1,
  ...obj2
}
console.log(obj3)
> {c: 3, a: 1, b: 2}

//4.2 数组方法 Array.frome()
function fn(){
    console.log(arguments)
    //arguments.push(5)
    var bb = Array.from(arguments)
    bb.push(5)
    bb.forEach(function (item){
        console.log(item)
    })
}
fn(1,2,3,4)

//4.3 对象的方法Object.assign()
const objA = {
    name: "zhangsan",
    age: 18
}
const objB = {
    gender: 'male'
}

const objC = Object.assign({},objA,objB)
objC.name = "lisi"
console.log(objA,objB,objC)

> {name: 'zhangsan', age: 18} {gender: 'male'} {name: 'lisi', age: 18, gender: 'male'}


//5、class
class A {
    //构造方法
    constructor (name, age) {
        this.name = name
        this.age = age
    }
    show () {
        console.log(`My name is ${this.name},my age is ${this.age}`)
    }
}
const a1 = new A('zhangsan',20)
console.log(a1)
> {name: 'zhangsan', age: 20}
a1.show()
> My name is zhangsan,my age is 20

//继承
class B extends A {
    constructor (name, age, gender) {
        super(name,  age, gender)
        this.gender = gender
    }
    sayHello () {
        console.log(`hello ${this.name}`)
    }
}
const b1 = new B('wangwu',20,'女')
console.log(b1)
b1.sayHello()
b1.show()
>  {name: 'wangwu', age: 20, gender: '女'}
> hello wangwu
> My name is wangwu,my age is 20


//6箭头函数(匿名函数的简写方式)
const getSum1 = function (n) {
    return n + 3
}
console.log(getSum1(10))

const getSum2 = n => n + 3
console.log(getSum2(10))
> 13

const getSum3 = (n1,n2) => n1 + n2
console.log(getSum3(10,4))

const getSum4 = (n1, n2, ...other) => console.log(n1,n2,other)
console.log(getSum4(10,4,12,14,55))
> 10 4 [12, 14, 55]

const getResult = arr => {
    let sum = 0
    arr.forEach(item => sum +=item)
    return sum
}
console.log(getResult([1,2,3,4,5]))
> 15

Promise Async

console.log('任务1.....同步')
setTimeout(() => {
    console.log('任务2.....异步')
},0)
console.log('任务3.....同步')
console.log('任务4.....同步')

const p1 = new Promise((resolve, reject) => {
    //resolve("成功的数据")
    reject("失败的数据")
})
console.log(p1)
p1.then(data => {
    console.log(data)
}).catch(err => {
     console.log(err)
})

Aync是基于Promise的简化

//1  准备一个返回Promise对象的函数
function asyncTask () {
    return new Promise((resolve, reject) => {
        //假装有一些业务
        const isSuccess = true
        if (isSuccess) {
            resolve("任务2.......成功")
        }else{
            reject("任务2.......失败")
        }
    })
}
//2 为使用await的杉树添加async
async function main(){
    console.log("任务1")
    const data = await asyncTask()
    console.log(data)
    console.log("任务3")
}
main()

Proxy 代理对象

//更新元素 冗余代码过多
const obj = {name: 'zhangsan', age: 18}
const container = document.getElementById('container')
container.textContent = obj.name
obj.name = 'wangwu'
container.textContent = obj.name


const objA = {
    name: "zhangsan",
    age: 18
}
const container = document.getElementById('container')
container.textContent = objA.name
const p1 = new Proxy(objA,  {
    get(target, property) {
        return obj[property]
    },
    set (target, property, value) {
        obj[property] = value
        container.textContent = objA.name
    }
})
console.log(p1.name)
p1.age = 22

Module: ESM(浏览器) CommonJS(Node.js)

moduleA.js

export const aTitle = "a标题"
export function aFn() {
    console.log('a模块的方法')
}

export default {
    name: "a模块"
}

moduleB.js

export const bTitle = "b标题"
export function bFn() {
    console.log('b模块的方法')
}

export default {
    name: "b模块"
}

index.js

import m1 from './moduleA.js'
import m2 from './moduleB.js'
import { aTitle, aFn } from './moduleA.js'
import { bTitle, bFn as bFunction } from './moduleB.js'

console.log(m1)
console.log(m2)

CommonJS

moduleC.js

module.exports = {
    name: 'zhangsan',
    age: 19
}

index.js

const m3 = require('./moduleC')

网络请求
AJAX

const xhr = new XMLHttpRequest()
xhr.open('GET', 'http://jsonplaceholder.typicode.com/posts?name=zhangsan&age=19')
xhr.send()
xhr.onreadystatechange = function() {
    if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200){
        console.log(JSON.pare(xhr.responeText))
    }
}
const xhr = new XMLHttpRequest()
xhr.open('POST', 'http://jsonplaceholder.typicode.com/posts')
xhr.setRequestHeader('Content','application/x-www-form-urlencoded')
xhr.send('name=zhangsan&age=19')
xhr.onreadystatechange = function() {
    if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200){
        console.log(JSON.pare(xhr.responeText))
    }
}

Axios
包需要引入

axios.get('http://jsonplaceholder.typicode.com/posts?name=zhangsan&age=19')

(async () => {
    const res1 = await axios.get('http://jsonplaceholder.typicode.com/posts?name=zhangsan&age=19')
    
    const res2 = await axios.post('http://jsonplaceholder.typicode.com/posts', {
        name: 'zhangsan',
        age: 19
    })
    console.log(res.data)
})


(async () => {
    const http = axios.create({
        bashURL: 'http://www.baidu.com/api/v1'
    })
    const res1 = await http.get('/name',{
        name: 'zhangsan',
        age: 19
    })
    console.log(res1.data)
})

Fetch API

fetch('http://jsonplaceholder.typicode.com/posts?name=zhangsan&age=19')
.then(res => {
    if(res.ok){
        return res.json()
    }
})
then(data => {
    console.log(data)
})


fetch('http://jsonplaceholder.typicode.com/posts',{
    method: 'POST',
    headers: {
        'Content-Type': 'application/json' 
    },
    body: JSON.stringify({
        name: 'zhangsan',
        age: 19
    })
})
.then(res => {
    if(res.ok){
        return res.json()
    }
})
then(data => {
    console.log(data)
})

参考

标签:const,log,age,JavaScript,了解,console,zhangsan,name
From: https://www.cnblogs.com/shwang/p/18141526

相关文章

  • 圈子社交系统--在线了解前后端,APP小程序H5,三端源码交付-多重玩法,新奇有趣。
    圈子论坛社区系统,含完整的后台PHP系统。功能:小程序授权登陆,H5和APP,手机号登陆,发帖,建圈子、发活动。圈主可置顶推荐帖子,关注、点赞、评论、交流等。可作为圈子贴吧等自媒体。一款全开源支持免费商用的圈子社区论坛系统;系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理......
  • 2.JAVA入门 了解JAVA 配置环境
    Java入门Java特性和优势简单性:Java语言设计简洁,易于学习和使用。它摒弃了许多复杂的特性和语法,使得编程变得更加直观和容易上手。面向对象:Java是一种纯粹的面向对象编程语言,所有的代码都以类和对象的形式组织。这种面向对象的特性使得代码更加模块化、可重用性更高,并且更容易......
  • 2.JavaScript
    变量/对象声明var-绑定到window,无法清理,且重复声明会污染全局(尽量不用)let-只在let命令所在的代码块{}内有效const-与let类似但它是只读常量,值不可修改参考视频增删改查letobj={}//创建对象obj.a=1//新增属性a,值为1obj['1']=1//新增属性1,值为1(可以在属性为数......
  • 计算机软著了解,与专利的区别
    查了下资料,才发现软著的用处挺广,即使不是计算机专业的也可以做软著。很多大学生在校期间也在做,还可以用来保研。很多研究生毕业条件里也有软著这项。公司也需要软著申请高新企业,还有政策优惠。app上架,必须要软著。软著是需要3000行代码的。不足3000行代码,需要提交所有的代码......
  • Effective Python:第3条 了解bytes与str的区别
    Python有两种类型可以表示字符序列:一种是bytes,另一种是str。bytes实例包含的是原始数据,即8位的无符号值(通常按照ASCII编码标准来显示)。str实例包含的是Unicode码点(codepoint,也叫作代码点)。注意点:1,bytes和str并不兼容。在传递字符序列的时候需要注意。a=b"h\x65llo"b="wo......
  • 节省时间和资源:了解如何最大化渲染农场的排队管理效率
    ​在3D渲染领域,时间的价值无可替代。随著3D艺术家与制作工作室不断挑战技术极限,对高效计算资源的渴求空前增长,渲染农场因此成为了渲染任务中不可或缺的力量。其核心在于排队系统——这一动态且复杂的结构负责安排和最优化渲染任务的执行顺序与时间,确保了渲染效率和资源的充分利用......
  • JavaScript简介:从概念、特点、组成和用法全面带你快速了解JavaScript!
    JavaScript,简称JS,是一种轻量级的解释型编程语言,它是网页开发中不可或缺的三剑客之一,与HTML和CSS并肩作战,共同构建起我们浏览的网页。今天我们就来了解一下JavaScript,看看它在我们的web前端开发中扮演着什么样的角色。一、JavaScript是什么?JavaScript(简称“JS”)是一种具有函数优......
  • 函数对象,闭包函数及装饰器了解
    函数对象【1】定义函数对象指的是函数可以被当做数据来处理【2】可以直接被引用定义一个函数用一个新的变量名来存,用新的变量名来调用#定义一个函数defadd(x,y):returnx+y#将函数地址绑定给一个变量func=add#通过这个变量找到对应的地址,从而调用函数res......
  • 简单了解前端性能监控
    作为一名开发来讲,以下场景你有没有遇到:点击这个按钮怎么没反应了页面为什么白了怎么一直正在加载很多用户说图片加载不出来......那么有一款性能监控产品太重要了,但是性能相关的东西实在太多了。那么从一个熟悉又陌生的api开始,performance。1.什么是performancemdn上是......
  • JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧
    JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧 在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示:一.onload事件通过监听图片的onload事件,可......