博客列表 >JavaScript基础语法(一)(变量、数据类型)

JavaScript基础语法(一)(变量、数据类型)

幽幽小帆
幽幽小帆原创
2022年04月09日 10:57:43452浏览

一、基本语法

1、引入

(1)html内

  1. <script>
  2. alert('aaa');
  3. </script>

(2)单独js文件

a.js

  1. alert('aaa');

test.html

  1. <script src="a.js"></script>

(3)延迟加载

  1. <script src="a.js" defer></script>

2、查看结果

(1)对话框

  1. alert();

(2)控制台

  1. console.log();

3、变量

(1)字面量

字面量是没有意义的,例如一个数字。

  1. console.log(60); // 年龄、数量、成绩,是没有意义的

(2)变量名命名规则

英文字母、数字、下划线,$ 符,只允许这四种。

注:首字母不能是数字

(3)命名风格:

  • 蛇形: user_name ,多个单词用下划线连接;用于常量。
  • 驼峰: userName,getUserName,第二个单词起首字母大写;用于变量、函数
  • 大驼峰:UserName,帕斯卡;用于类、构造函数

(4)变量的声明

声明变量用 let ,var 以淘汰。

  1. let num = 60;

请注意,JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。

  1. let num; // 只声明不赋值, 此时 num 的值为 undefined

第一次赋值叫 初始化,第二次赋值 叫更新

将声明与赋值二合一

  1. let num = 99;

(5)常量

常量名,推荐全部大写

  1. const APP_NAME = "在线商城"

代码中首选使用常量,除非可以确定这个数据会发生变化。

4、数据类型

(1)数值

数值有整数和小数。

  1. let data = 123;
  2. let price = 99.99

js不区分小数和整数

  1. 123 // 整数
  2. 123.1 // 浮点数
  3. 123e3 // 科学计数法
  4. -99 // 负数
  5. NaN // not a number
  6. Infinity //表示无限大

数值问题

  1. console.log((1/3) === (1-2/3)); //false
  2. console.log(Math.abs(1/3 - 2/3) < 0.000001); //true

(2)字符串

字符串用单引号或者双引号

  1. 'abc'
  2. "abc"

注:字符串不可变

转以字符

  1. \
  2. \n
  3. \t
  4. \u4e2d \\Unicode 编码
  5. \x41 \\Ascii编码

多行(反引号)

  1. vat a = `
  2. adfsa
  3. sde
  4. ewf
  5. e
  6. t4
  7. `

模板字符串

  1. let name = "test"
  2. let age = 3
  3. let msg = `你好鸭,$(name)`

字符串方法

  1. let name = "test"
  2. name.length
  3. name[0] // 索引取值
  4. name.toUpperCase() // 转为大写
  5. name.toLowerCase()
  6. name.indexOf('e') // 获取字符 e 的下标
  7. name.substring(1,3) //前闭后开

(3)布尔值

  1. true
  2. false

(4)两个特殊值: undefined、null

  1. let res;
  2. console.log(typeof res); // undefined
  3. res = null;
  4. console.log(typeof res); // object

(5)原子类型

number、string、boolean、undefined、null

具有单值,不可再分,它是构成符合类型的基础。

(6)引用类型

①、数组

  1. const price = [95, 89, 49, 93, 89]

一个变量名:price,它是一组数据的引用,通过price 可以访问到这个集合中任何一个成员。

访问方式:可以通过索引访问

  1. console.log(price);
  2. console.log(price[0]);
  3. console.log(price[1]);

注:

数组中成员可以是任何类型。

  1. const arr1 = [
  2. 123,
  3. "abc",
  4. null,
  5. true,
  6. [1, 2, 3, 4, 5],
  7. function () {
  8. console.log("Hello World");
  9. },
  10. ];
  11. console.log(arr1);
  12. console.log(arr1[4]);
  13. console.log(arr1[5]);

引用类型判断不能用 typeof

判断是否为数组: Array.isArray()

②、对象

对象和数组很像,不同点在于它的索引是一个字符串或者标识符。

  1. const = item1 = ['笔记本电脑', 5, 5999]
  2. const item1 = {
  3. // 属性:变量在对象中叫属性
  4. 'name': '笔记本电脑',
  5. 'num': 5,
  6. 'price': 5999
  7. }

查看对象的方式:

  1. console.log(item1);
  2. // 查看对象的某个属性,可以使用点语法
  3. console.log(item1.num);
  4. console.log(item1.price);

对象的查看可以用: console.table() 来查看。

注:当属性使用了非法标识符时,必须转为字符串,json就采用了这种语法。

  1. const item2 = {
  2. // 属性:变量在对象中叫属性
  3. 'my name': '笔记本电脑',
  4. 'num': 5,
  5. 'min-price': 29.9
  6. }
  7. console.log(item2['my name']);
  8. console.log(item2['min-price']);

数组中包含对象

  1. const items = [
  2. {name:"电脑", num:2, price: 2999},
  3. {name:"手机", num:3, price: 1999},
  4. {name:"相机", num:1, price: 12999},
  5. ]

  1. items[1].name // 手机
  2. items[1].price // 1999

对象可以将数据与函数封装到一起,作为一个独立的编程单元

  1. <script>
  2. let obj = {
  3. id: 1,
  4. username: 'jack',
  5. num: [1,2,3],
  6. getUser: function(obj){
  7. return 'id = ' + obj.id + ', username: ' + obj.username;
  8. }
  9. }
  10. console.log(obj.getUser(obj));
  11. console.log(obj.getUser());
  12. </script>
  13. ![](https://img.php.cn/upload/image/949/647/702/1649472902323705.png)
  • console.log(obj.getUser());
  • 以上代码中,当方法getUser执行时需要参数,所以会报错。
  • 如果在方法getUser中传入 obj 对象那么就不报错了。

注:

  • 在对象中可以使用变量 this 来引用对象自身。
  1. <script>
  2. let obj = {
  3. id: 1,
  4. username: 'jack',
  5. num: [1,2,3],
  6. getUser: function(){
  7. return 'id = ' + this.id + ', username: ' + this.username;
  8. }
  9. }
  10. console.log(obj.getUser()); // 输出:id = 1, username: jack
  11. </script>

③、函数

函数是对象也是一个值,可以当成一个参数传递,也可以当成返回值。

函数推荐使用:动词 + 名称 的命名方式。

  1. function getTotal(name){
  2. return 'hello ' + name;
  3. }

查看函数的类型: console.log(typeof getTotal);

既然函数是对象,那么对象就有属性和方法:

  1. // 查看函数名
  2. console.log(getTotal.name);
  3. // 查看函数中有多少个参数
  4. console.log(getTotal.length);

1)函数作为参数

回调函数

  • 函数可以当作一个参数,传入函数中。
  1. <script>
  2. console.log(typeof function(){});
  3. function f1(callback){
  4. console.log(typeof callback);
  5. console.log(callback());
  6. }
  7. f1(function(){
  8. return 'hello world';
  9. })
  10. </script>

2)函数作为返回值

函数当返回值:闭包。

  1. <script>
  2. function f2(){
  3. let a = 1;
  4. return function(){
  5. // 此时子函数中的a不是自己的,是父函数的。
  6. return a++;
  7. }
  8. }
  9. console.log(f2());
  10. console.log(f2()());
  11. const f = f2();
  12. console.log(f());
  13. console.log(f());
  14. console.log(f());
  15. </script>

3)函数就是对象对象可以添加属性和方法

  1. <script>
  2. let f3 = function(){};
  3. f3.myemail = 'admin@qq.com';
  4. console.log(f3); // 输出:ƒ (){}
  5. console.log(f3.myemail); // 输出:admin@qq.com
  6. f3.getEmail = function(){
  7. console.log(this.myemail);
  8. }
  9. f3.getEmail(); // 输出:admin@qq.com
  10. </script>

(7)隐式转换

①、数值和字符串相加

  1. <script>
  2. console.log("hello" + 100);
  3. console.log(100 + "hello");
  4. </script>

②、数值和布尔值相加

  1. <script>
  2. console.log(true + 1); // 2
  3. console.log(typeof(true + 1)); // number
  4. </script>

(8)小结

变量、常量、数据类型

数据类型:

基本类型:number、string、bool、undefined、null

引用类型:数组、对象、函数,array、object、function

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议