首页 > 编程语言 >JavaScript基础

JavaScript基础

时间:2024-03-01 09:22:46浏览次数:26  
标签:function const log JavaScript 基础 let Expected console

引入方式

JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。

内部引入

写在 body 结束标签的上方。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 内部js -->
  <script>
    // 页面弹出警示框
    alert('你好,js~')
  </script>
</body>

</html>

外部引入

// 文件名 demo.js
alert('我是外部的 js文件')
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script src="demo.js">
    // 中间不要写内容,会被忽略
  </script>
</body>

</html>

内联引入

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <button onclick="alter('内联引入')">
      按钮
  </button>
</body>

</html>

输入输出

输出

  1. alter() 以弹窗形式输出。
  2. document.writer() 输出在页面上。可以写 HTML 标签,会被解析。
  3. console.log() 控制台输出。

输入

展示一个输入弹窗。

prompt()
prompt(message)
prompt(message, defaultValue)

参数说明:

  • message:提示信息
  • defaultValue:文本框中的默认值

变量

声明及赋值

let name1;
let name1 = value1;
let name1 = value1, name2 = value2;
let name1, name2 = value2;
let name1 = value1, name2, /* …, */ nameN = valueN;

参数说明:

  • nameN:变量名称。
  • valueN:变量初始值,默认值为 undefined

关键字

JavaScript 使用专门的关键字 let 和 var 来声明(定义)变量,在使用时需要注意一些细节:

以下是使用 let 时的注意事项:

  1. 允许声明和赋值同时进行
  2. 不允许重复声明
  3. 允许同时声明多个变量并赋值
  4. JavaScript 中内置的一些关键字不能被当做变量名

以下是使用 var 时的注意事项:

  1. 允许声明和赋值同时进行
  2. 允许重复声明
  3. 允许同时声明多个变量并赋值

大部分情况使用 let 和 var 区别不大,但是 let 相较 var 更严谨,因此推荐使用 let

命名规则

关于变量的名称(标识符)有一系列的规则需要遵守:

  1. 只能是字母、数字、下划线、$,且不能能数字开头
  2. 字母区分大小写,如 Age 和 age 是不同的变量
  3. JavaScript 内部已占用于单词(关键字或保留字)不允许使用
  4. 尽量保证变量具有一定的语义,见字知义

常量

概念:使用 const 声明的变量称为“常量”。

使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。

命名规范:和变量一致

const PI = 3.14

注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)

数据类型

可以通过 typeof 关键字检测数据类型

document.writer(typeof 1) // number
document.writer(typeof '字符串') // string
document.writer(typeof true) // boolean
let tmp
document.writer(typeof tmp) // undefined

基本数据类型

  • number:数值型

  • string:字符串型

    • // 使用 "" '' `` 包裹的都为字符串
      // 当使用 `` 时,为模板字符串,例如: `我今年${age}岁`,可以避免字符串拼接
      let age = 20
      document.writer(`我今年${age}岁`)
      
  • boolean:布尔型

  • undefined:未定义型

  • null:空类型

引用数据类型

  • object:对象

数组

定义数组

let arr = []
// a) 数组单元值的类型为字符类型
let list = ['HTML', 'CSS', 'JavaScript']
// b) 数组单元值的类型为数值类型
let scores = [78, 84, 70, 62, 75]
// c) 混合多种类型
let mixin = [true, 1, false, 'hello']

操作数组

  1. push 动态向数组的尾部添加一个单元

    /*
        push()
        push(element0)
        push(element0, element1)
        push(element0, element1, … , elementN)
    */
    
    const animals = ['pigs', 'goats', 'sheep'];
    
    const count = animals.push('cows');
    console.log(count);
    // Expected output: 4
    console.log(animals);
    // Expected output: Array ["pigs", "goats", "sheep", "cows"]
    
    animals.push('chickens', 'cats', 'dogs');
    console.log(animals);
    // Expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]
    
  2. unshit 动态向数组头部添加一个单元

    /*
        unshift()
        unshift(element1)
        unshift(element1, element2)
        unshift(element1, element2,  …,  elementN)
    */
    
    const array1 = [1, 2, 3];
    
    console.log(array1.unshift(4, 5));
    // Expected output: 5
    
    console.log(array1);
    // Expected output: Array [4, 5, 1, 2, 3]
    
  3. pop 删除最后一个单元

  4. shift 删除第一个单元

  5. splice 从指定位置开始,删除0~N个数

    /*
        splice(start)
        splice(start, deleteCount)
        splice(start, deleteCount, item1)
        splice(start, deleteCount, item1, item2, itemN)
        
        start:开始位置,包括该位置
        deleteCount(可选):删除的个数,如果为0则必须有 item,即将 item 插入指定索引位置
        item(可选):要插入的元素
    */
    
    const months = ['Jan', 'March', 'April', 'June'];
    months.splice(1, 0, 'Feb');
    // Inserts at index 1
    console.log(months);
    // Expected output: Array ["Jan", "Feb", "March", "April", "June"]
    
    months.splice(4, 1, 'May');
    // Replaces 1 element at index 4
    console.log(months);
    // Expected output: Array ["Jan", "Feb", "March", "April", "May"]
    

map()

map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。

<body>
  <script>
    const arr = ['red', 'blue', 'green']
    // map 方法也是遍历  处理数据  可以返回一个数组
    const newArr = arr.map(function (item, i) {
      // console.log(item)  // 数组元素  'red'
      // console.log(i)  // 下标
      return item + '老师'
    })
    console.log(newArr) // ['red老师', 'blue老师', 'green老师']
    const newArr2 = arr.map(function(item, i) {
        if (i < 2) {
            return item
        }
    })
    console.log(newArr2) // ['red', 'blue', 'undefined']
  </script>
</body>

join()

join() 方法将一个数组的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。

const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(''));
// Expected output: "FireAirWater"

console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"

函数声明

/*
 function:关键字
 形参与返回值是可选的,非必须
*/
function 函数名(形参) {
 // 逻辑代码
 
 return 返回值;
}

/*
 匿名函数,一般用于函数表达式
*/
let fun = function() {
 console.log('函数表达式')
}
// 调用
fun()

/*
 立即执行函数
 多个立即执行函数之间必须要使用 ; 隔开
*/
(function(形参) {
 
})(实参);
(function(形参) {
 
}(实参));

对象

对象的构成与声明

// 空对象
let obj = {}
// 对象构成
let 对象名 = {
    属性名: 属性值,
    方法名: function() {}
}

对象的操作

属性访问与方法调用

/*
	属性名需要使用 "" 或 '' 包裹,但可以省略
	当属性名包含特殊符号时则必须使用上述符号包裹
*/
const person = {
  name: ["Bob", "Smith"],
  age: 32,
  bio: function () {
    console.log(`${this.name[0]} ${this.name[1]} 现在 ${this.age} 岁了。`);
  },
  introduceSelf: function () {
    console.log(`你好!我是 ${this.name[0]}。`);
  },
};

// 点表示法
person.name;
// 括号表示法,一般用于属性名有特殊符号的时候
person['name'];
person.name[0];
person.age;
person.bio();
// "Bob Smith 现在 32 岁了。"
person.introduceSelf();
// "你好!我是 Bob。"

遍历对象

const obj = {
  uname: '张三',
  age: 18,
  gender: '男'
};

for (let key : obj) {
    console.log(obj[key])
    /*
    	张三
    	18
    	男
    */
}

标签:function,const,log,JavaScript,基础,let,Expected,console
From: https://www.cnblogs.com/wangtiantian/p/18046134

相关文章

  • 基础数据结构->set&&map
    set&&mapBEGIN:惜墨如金set用法#include<bits/stdc++.h>usingnamespacestd;voidthe_map(){map<string,int>ds;stringkis="kis";ds[kis]=2;ds["a+a"]=3;ds["b+"]=4;ds["c-"]=5;//这样就可将这个“数......
  • JAVA基础:引用类型参数传递的相关案例(数组的传递) 方法重载 return关键字
    packagecom.itheima.Method;publicclassMethod6{publicstaticvoidmain(String[]args){int[]arrs=newint[]{2,5,6,4};printArray(arrs);}publicstaticvoidprintArray(int[]arr){if(arr!=null){System.out......
  • Redis基础数据结构
    简单动态字符串SDS在Redis里面字符串随处可见比如//设置一个(key,value)为msg和helloworld的键值对setmsg"helloworld"在这里,msg和helloworld都是一个字符串.Redis自己构建了一个名为SDS(SimpleDynamicString简单动态字符串)的类,用于作为Redis底层字符串的默认实......
  • JAVA基础:java的参数传递机制
    基本类型的参数传递:    关键点:传的只是值传递,值传递:传输的是实参存储的值的副本  引用类型的参数传递:传递的是地址,是对象   ......
  • web前端基础
    软件架构体系:C/S:client/Server客户端/服务端QQ,酷狗,爱奇艺,王者荣耀等3D游戏B/S:browser/Server浏览器/服务端百度/淘宝/京东/网页版的爱奇艺/基于web前端技术实现的一些手机APP[例如:百度地图、喜马拉雅、消消乐、斗地主]web前端技术其是基于浏览器实现客户端的一套......
  • Day00----Web前端基础
    1,什么是Web前端技术?Web前端技术是基于浏览器实现客户端的一套综合技术,包括了HTML,CSS,Javascript等。UI客户端技术是基于UI模块实现客户端的一种UI模块+打包模块,包括了Pygame,pyqt5,Tkinter,wxPython,PyGUI等结合pyinstaller.2,发展历史Linux-->90年-->GUNLinux美苏冷战(2极争......
  • JAVA基础:方法案例
    方法设计技巧:  packagecom.itheima.Method;publicclassMethod3{publicstaticvoidmain(String[]args){System.out.println(sum(10));pan(5);}publicstaticintsum(intn){intsum=0;for(inti=1;i<=......
  • JAVA基础:方法的其他形式 方法使用需要注意的常见问题
                方法使用需要注意的常见问题 packagecom.itheima.Method;publicclassMethod2{publicstaticvoidprinthelloworld1(){System.out.println("helloworld!");}publicstaticvoidmain(String[]args){......
  • Java基础语法
    注释注释不参与编译和运行修改注释颜色  关键字被Java赋予了特定含义的英文单词,所以关键字不能被我们使用字面量 标识符数据类型Scanner键盘录入......
  • java基础
    目录java入门知识:一、开发环境二、关系三、变量四、标识符一、标识符命名的规则二、标识符命名规范1、标识符的命名规则:2、标识符的命名规范:3、变量的声明格式,变量的赋值格式,变量的三要素,变量应该注意几点4、java基本数据类型有哪些?5、java程序的开发步骤是什么?五、运算符一、算术......