首页 > 编程语言 >javascript 基本语法,变量,运算符【知识点整理】

javascript 基本语法,变量,运算符【知识点整理】

时间:2024-11-01 19:18:36浏览次数:5  
标签:知识点 console undefined javascript 运算符 let null true log

JavaScript(ES5)

JavaScript的基本语法和变量

变量声明与变量赋值的方法:

var a = 5;
var a = 5;var b = 4;
var a = 3, b = 2;
var a,b,c = 5;
var a = b = c = 1;

变量的命名规范

  • 首字符:英文和下划线
  • 组成:英文数字下划线
  • 禁忌:关键字、保留字
img ## Unicode 在HTML中,Unicode字符可以通过 `&#xNUM;` 或 `&#NUM; `实体来使用,其中`NUM`代表字符的Unicode编码或ASCll编码。 ## JS 数据类型

引用数据类型和基本数据类型区别:

基本数据类型引用数据类型
存储位置是不可变的,直接存储在内存中的**栈(stack)**上是可变的,它们存储在内存中的**堆(heap)**上,而变量存储的是对象的引用(地址)在栈上。
传递方式基本类型的值是按值传递引用类型的值是按引用传递的。
内存占用基本类型的值通常占用较少的内存引用类型的值通常占用更多的内存

JavaScript 是一种动态类型语言,它支持多种数据类型。以下是 JavaScript 中的一些基本数据类型:

  1. Undefined(未定义):
    变量被声明了,但没有被赋值时,其值就是 undefined 。

    • 未赋值的变量: 如果一个变量被声明了但没有被赋值,那么它的值就是 undefined

      let myVar;
      console.log(myVar); // 输出: undefined
      
    • 函数没有返回值: 如果一个函数没有明确的返回语句,或者没有被调用 return 语句,那么它会默认返回 undefined

      function myFunction() {
          // 没有返回语句
      }
      console.log(myFunction()); // 输出: undefined
      
    • 对象属性不存在: 尝试访问对象上不存在的属性会得到 undefined

      let obj = { name: "Kimi" };
      console.log(obj.age); // 输出: undefined
      
    • 函数参数未传值: 如果调用函数时没有传入足够的参数,那么未传入的参数的值将是 undefined

      function greet(name) {
          console.log(name);
      }
      greet(); // 输出: undefined
      
    • undefined 的类型undefined 是一个原始类型,它有自己的类型 undefined

      typeof undefined; // 输出: "undefined"
      

      与 null 的区别: undefined 和 null 都是表示“没有值”的特殊值,但它们是不同的。 undefined 表示变量声明了但还没有值,而 null 表示有意赋予变量一个“没有值”的值。

      检查 undefined: 通常使用 typeof 操作符来检查一个变量是否为 undefined。

      undefined 的不可变性: undefined是不可变的,这意味着你不能给 undefined赋值。

  2. Null(空值):
    表示一个空值,代表没有值。

    1. 在对象属性中的使用
      • 当你想要删除对象的某个属性时,可以将该属性设置为 null。(解除引用
      • 当你想要检查一个对象的属性是否被设置为 null 时,可以使用 if (object.property === null)
    2. 在数组中的使用
      • 当你想要从数组中移除某个元素时,可以将该元素设置为 null,但这并不会改变数组的长度。
    3. 在函数中的使用
      • 当函数没有返回值时,默认返回 undefined,而不是 null。但是,你可以在函数中明确返回 null
  3. Boolean(布尔值):
    只有两个值: true 和 false 。
    以下值在转换为Boolean时被视为false

    • undefined
    • null
    • 0-00n(BigInt类型的0)
    • NaN
    • ''(空字符串)
    • false
    • 所有其他值都被视为true
    Boolean(undefined); // false
    Boolean(null);      // false
    Boolean(0);         // false
    Boolean('');        // false
    Boolean('Hello');   // true
    Boolean({});        // true
    Boolean(null == undefined)    //true
    
  4. Number(数字):
    表示整数或浮点数。

  • 转换函数
    JavaScript提供了parseIntparseFloat函数来将字符串转换为数字,并且可以指定进制。

    • parseInt(string, radix):将字符串转换为整数。radix参数是基数,如果省略,默认为10。如果字符串以0x0X开头,radix会被设置为16。
    • parseFloat(string):将字符串转换为浮点数。这个函数不使用radix参数。
    • num.toString([radix]):将数转换成对应的进制的值。
    let decimalFromHex = parseInt('1A', 16); // 26
    let decimalFromOctal = parseInt('15', 8); // 13
    let decimalFromBinary = parseInt('101', 2); // 5
    let float = parseFloat('3.14'); // 3.14
    
    let decimalNumber = 15;
    // 转换为二进制字符串
    let binaryString = decimalNumber.toString(2);
    console.log(binaryString); // 输出: "1111"
    
  1. BigInt(大整数):
    表示大于 2^53 - 1 的整数。

  2. String(字符串):
    表示文本数据,可以是字母、数字、下划线、特殊字符等的序列。

转义序列

\r:回车符\0:空字符(null character)
\t:制表符(水平)\':单引号
\b:退格符\":双引号
\f:换页符\\:反斜杠
\v:垂直制表符\n:换行符
\uXXXX:Unicode字符,其中XXXX是四位十六进制数\xXX:ASCII字符,其中XX是两位十六进制数
  1. Symbol(符号)(ES6 新增):
    一种唯一的、不可变的数据类型,常用作对象属性的键。

  2. Object(对象):

    由键值对组成,键是字符串,值可以是任意类型。

    对象的创建: 1. 见面量 2.构造器方法

    var dog = new Object();
            dog.hair = "red";
            dog.leg = "short";
            dog.eye = "blue";
            console.log(dog);
    
            var cat = {
                "name":"mimi",
                "age":12,
                "sex":"女"
            };
            console.log(cat);
            console.log(cat.name);
    
    //构造函数方法
    
    function Person(firstName, lastName, age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.greet = function() {
            console.log("Hello, " + this.firstName + " " + this.lastName);
        };
    }
    
    let person = new Person("John", "Doe", 30);
    

    面试题

    let a = {};
          let b = {key:"b"};
          let c = {key:"c"};
    
          a[b] = 123;
          a[c] = 345;
    
          console.log(a);   // {[object Object]: 345}
          console.log(a[b],a[b] === a[c]);    // 345 true
    

在这里插入图片描述

  1. Array(数组):
    一种特殊的对象,用于存储有序的值序列。
    示例: let numbers = [1, 2, 3, 4, 5];

  2. Function(函数):
    在 JavaScript 中,函数也是对象,因此它们可以像任何其他对象一样被操作。

JS 运算符

隐式转换的规则:

  1. 如果一个操作数是布尔值,那么在比较相等性之前 会将其转换成Number类型 true == 1

  2. 如果一个操作数是字符串 另一个操作数是 数值,比较时字符串会转换成数值 ,如果是一个不合法的数值 结果就是NaN ,比较式如果一个操作数是NaN,会无视规则,直接返回false

  3. null == null 无视规则 直接返回 true

  4. undefined == undefined 无视规则 直接返回 true

  5. null== undefined 无视规则 直接返回 true

  6. NaN== NaN无视规则 直接返回 false

  7. 如果一个操作数是对象另一个操作数不是对象就会调用对象的tostring方法用得到的基本值按照之前的规则去进行比较

  8. 如果两个操作数都是对象则去比较他们是否是同一个对象 也就是引用地址是否是相同的 如果不是相同的那么就会返回false 反之就是 true

对象和空数组的toString方法:

console.log({}.toString());   //[object Object]
console.log([].toString());    //

    console.log([] == 0);     //true    Number([].toString()) == 0
    console.log(![] == 0);    //true    Number(!Boolean([])) == 0

    console.log([] == ![]);   //true    Number([].toString()) == Number(!Boolean([]))
    console.log([] == []);   //false   引用类型,比较的是引用地址

    console.log({} == !{});   //false    NaN = Number({}.toString()) == !Boolean({})
    console.log({} == {});    //false
  1. 算术运算符
  • +:加法。例如,5 + 3 结果为 8
  • -:减法。例如,5 - 3 结果为 2
  • *:乘法。例如,5 * 3 结果为 15
  • /:除法。例如,5 / 3 结果为 1.666...
  • %:取模(求余数)。例如,5 % 3 结果为 2
  • **:指数(ES6 新增)。例如,2 ** 3 结果为 8
  1. 赋值运算符
  • =:赋值。例如,let a = 5;
  • +=:加法赋值。例如,a += 3 等同于 a = a + 3
  • -=:减法赋值。
  • *=:乘法赋值。
  • /=:除法赋值。
  • %=:取模赋值。
  • **=:指数赋值(ES6 新增)。
  1. 比较运算符
  • ==:等于。比较两个值是否相等,类型可以不同。
  • ===:严格等于。比较两个值是否相等,且类型也必须相同。
  • !=:不等于。
  • !==:严格不等于。
  • >:大于。
  • <:小于。
  • >=:大于等于。
  • <=:小于等于。
  1. 逻辑运算符
  • &&:逻辑与。两个操作数都为真时,结果为真。
  • ||:逻辑或。两个操作数中至少有一个为真时,结果为真。
  • !:逻辑非。反转操作数的布尔值。
  1. 位运算符(操作的二进制
  • &:按位与。
  • |:按位或。
  • ^:按位异或。异为1,同为0
  • ~:按位非。
  • <<:左移。乘2n
  • >>:右移(有符号)。除2n
  • >>>:右移(无符号)。
  1. 字符串运算符
  • +:字符串连接。例如,'Hello, ' + 'world!' 结果为 'Hello, world!'
  1. 其他运算符(一元运算符)
  • ++--
  • typeof:返回操作数的类型。例如,typeof 5 结果为 'number'
  • instanceof检查一个操作数是否是另一个操作数的实例。例如,new Date() instanceof Date 结果为 true
  • in:检查一个属性是否存在于对象中。例如,'length' in 'Hello' 结果为 true
  • delete:删除对象的属性或没用var声明的对象。例如,delete obj.propertyName
  • void:执行表达式但不返回任何值。例如,void 0 等同于 undefined

标签:知识点,console,undefined,javascript,运算符,let,null,true,log
From: https://blog.csdn.net/m0_74897683/article/details/143439109

相关文章

  • JavaScript语法基础——变量,数据类型,运算符和程序控制语句(小白友好篇,手把手教你学会!)
     一、JavaScript概述JavaScript是一种高级编程语言,常用于网页开发和服务器端应用程序。它是一种动态类型语言,可以在浏览器中直接解释执行,而不需要编译。脚本(Script)是一种与计算机程序相关的指令集或代码块,用于执行特定的任务或操作。脚本通常用于自动化重复性的任务或进行特......
  • JavaScript:六.函数
    函数用于封装一段完成特定功能的代码,相当于将包含一条或多条语句的代码块“包裹”起来,用户在使用时只需关心参数和返回值,就能完成特定的功能。函数的优势在于提高代码的复用性,降低程序维护的难度。 6.1函数的定义与调用自定义函数的语法格式如下。function函数名([参......
  • 嵌入式课程day04-C语言运算符和选择结构
    2.3运算符2.3.1运算符介绍运算符:具有一定运算规则的符号。操作数:运算符的操作对象。~a   ---a就是~运算符的操作数。---单目运算符:运算符只有一个操作数3+5---35就是+运算符的操作数。---双目运算符:运算符有2个操作数    表达式1?表达式2:表达......
  • SSM 框架重要知识点解析
    在JavaWeb开发领域,SSM框架(Spring+SpringMVC+MyBatis)是一套备受青睐的轻量级企业级开发框架组合,它为我们提供了高效、便捷且可维护的开发方式。接下来,让我们深入探讨一下SSM框架中的重要知识点。一、Spring框架核心要点1.IOC(控制反转)与DI(依赖注入)概念解析I......
  • JavaScript基础教程前言
     ---------------------------------------------------------------------有人22岁就毕业了,但等了五年才找到好的工作;有人25岁就当上CEO,却在50岁去世;也有人迟到50岁才当上CEO,然后活到90岁。 有人依然单身,同时也有人已婚。奥巴马55岁就退休,川普70岁才开始当总统。......
  • vue3知识点:reactive对比ref
    @目录二、常用CompositionAPI5.reactive对比ref本人其他相关文章链接二、常用CompositionAPI问题:啥叫“组合式API”?答案:请看官方文档:https://v3.cn.vuejs.org/guide/composition-api-introduction.html5.reactive对比ref从定义数据角度对比:ref用来定义:基本类型......
  • 总结 JavaScript 中8种数组常用的操作 API,array.push,pop,shift,unshift,slice,splice
    前言JavaScript中数组是一个重要的数据结构,它相比于字符串有更多的方法,在一些算法题中我们经常需要将字符串转化为数组,使用数组里面的API进行操作。本篇文章总结了JavaScript中有许多数组常用的操作API,以下是一些常见的操作及其示例:1.push():在数组末尾添加一个或多个元素,并......
  • 从零到精通大模型!超详细入门知识点汇总,一篇在手,学习无忧!
    采用提问方式,从个人知识盲点开始,渐进式掌握大模型入门知识点。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍1、大模型中7b、70B代表什么在讨论人工智能领域特别是大型语言模型(LLMs)时,“7b”和“70B”均用来表示模型所包含的参数数量。这里的“b”是英文“Billion”......
  • 使用JavaScript实现:随机曲线之间进行平滑切换
    介绍今天,我运用拉格朗日插值法绘制了一条曲线。然而,我并未止步于静态展示,而是引入了一个定时器,每隔一段时间便对曲线上的点进行动态更新,从而赋予曲线生命般的动态变化。然而,在刷新过程中,我敏锐地察觉到曲线之间的切换显得过于突兀,缺乏流畅感(请见下图)。于是,一个大胆的想法......
  • JavaScript
    JavaScriptJavaScript因为互联网而生,紧随着浏览器的出现而问世1、JavaScript的历史https://javascript.ruanyifeng.com/introduction/history.htmljs参数描述throw声明的作用是创建exception(异常或错误)this的四种用法1.在一般函数方法中使用this指代......