JavaScript书写基础和基本数据类型

JavaScript书写基础和基本数据类型

@jarringslee

js书写基础和规范

js是一种在客户端(浏览器)运行的编程语言,可实现人机交互的效果。


js组成:

js由两部分组成:

  1. ECMAScript:js的语言基础,js遵循其语言逻辑。它规定了js的基础语法核心知识,如变量、分支、循环等;
  2. Web APIs:分为DOM(页面文档对象型:操作文档,比如对页面元素进行移动、大小、添加删除等操作)和BOM(浏览器对象型:操作浏览器,比如页面弹窗、检测窗口宽度、存储数据到浏览器等)。

js书写位置:

  • 行内js

  • 内部js 直接写在html文件中(通常写在</body>标签上面),用<script>标签包裹住

  • 外部js通过link链接

    html 复制代码
    <body>
        <script src="js文件地址"></script>
    </body>

js结束符:

可以用分号结尾,也可以不写,统一格式即可。

输入和输出语法:

  • 输出语法

    1. 向body内输出内容:

      document是文档的意思,输出内容也可以用标签包裹。

      javascript 复制代码
      document.write('输出内容')
      document.write('<h1>我是标题</h1>')
    2. 页面弹出警示框:

      javascript 复制代码
      alert('输出内容')
    3. 控制台输出(用户无法看到,在控制到console中):

      js 复制代码
      console.log('控制台输出')  //简写为log
  • 输入语法

    1. 显示对话框和文字信息

      js 复制代码
      promot('请输入姓名')

被引号包裹的内容可以用单引号''、双引号""或反引号``


执行顺序:

  1. 按文档流顺序执行代码;
  2. alert()和promot()会跳过页面渲染先被执行

js字面量

字面量literal在计算机中描述事/物

  • 月薪是30000 此时30000是数字变量
  • '泥嚎' 泥嚎是字符串字面量
  • \] 是数组字面量 {} 是对象字面量

变量 let

变量是计算机中用来存储数据的容器,并不是数据本身。

变量的声明/定义/创建: 声明关键字 变量名 let age = 18

**变量的本质:**是程序在内存中申请的一块用来存放数据的小空间

存储输入的数据:

js 复制代码
        let uname =prompt('请输入姓名')
        document.write('姓名:', uname, '。')
        //或者
        const age = prompt('请输入您的年龄')
        document.write('年龄:${age}<br>')

**数组变量:**直接声明,等号后写中括号,元素间用逗号隔开。

数组长度:变量名+点+length(最大元素的下标+1)

js 复制代码
        let uname = [111, 222, 'num', 231]
        document.write('姓名:', uname[2], '。')
        document.write('数组长度:', uname.length, '。')

常量 const

声明时必须赋值,且不允许再次赋值,无法被修改。 const PI = 3.14


数据类型

基本数据类型:

  • **数字类型Number:**变量声明后直接创建。可以是整数、小数、正数、负数。

    js、Python是弱数据类型的语言:一个关键字可以声明任意类型的数字(整数、小数...)。

    而c、java就是强数据类型的语言:int整数、float或者double为浮点数。

    数字的运算符:算术运算符:

    • 优先级最大的是括号中或者次方(**:4**2表示4的4次方
    • 乘 除 取余
    • 加 减

    如果碰到非数字进行了算术运算,则会输出:NaN。

    NaN代表一个计算错误。它是粘性的:任何和其有关的操作都会返回NaN。"NaN==NaN"的命题也是错的。

  • **字符串类型string:**变量声明后用引号(单引号、双引号、反引号)包裹创建内容。注意若数字被引号包裹了,那它也是字符串类型。

    空字符串:let str = '' console'log('')

    字符串拼接:加号+ 可以把相邻的两个字符串或相邻的字符串和数字相连在一起。

    js 复制代码
    document.write('我今年' + 19 + '岁了')
    //等价于
    document.write('我今年', 19, '岁了')
    //或者
    let age = 19
    document.write('我今年' + age + '岁了')
    //或者
    let age = 19
    let aa = '我今年'
    let bb = '岁了'
    document.write(aa + age + bb)

    直接在字符串的引号中书写变量名:模版字符串

    字符串用反引号 包裹,引号中的变量名用**${}**包裹

    js 复制代码
    document.write(`我今年${age}岁了`)
  • **布尔类型boolean:**判断真假的数据类型,有true(真)和false(假)两个数据类型

    js 复制代码
    let mybool = true
    document.write(mybool)

    若直接在输出内容中放一个判断问题(不加引号),也可以直接输出true或false

    js 复制代码
    document.write(99 < 1000)
  • 未定义类型undefined: 值直接为undefined。在不声明变量、不赋值的情况下默认值为undefined。一般不直接把某个变量赋值为undefined。

    js 复制代码
    let buy
    document.write(buy) //输出值为undefined

    **使用场景:**若后端有一个变量传过来,可以通过判断这个值是不是undefined来确定这个值是否有效。

  • 空类型null: null是对象数据类型(object),表示创建了变量但是没有赋值,代表"无""空""未知"的一个特殊值

    js 复制代码
    let obj = null

    undefined是没有赋值(什么也不是,不能参与运算),null表示赋值了但是内容为空(没有值,参与运算时默认为0)

    js 复制代码
    document.write(undefined + 1) //输出NaN
    document.write(null + 1) //输出值为1

    **使用场景:**如果一个变量中确定存放的是对象,但还没有准备好该对象,可以先放null

检测数据类型 typeof

在输出中使用,可以直接输出变量类型名

书写方法:

  • typeof + 空格 + 变量名(常用)
  • typeof + (变量名)
js 复制代码
        let num = 10
        console.log(typeof num)  //输出number
        let str = 'pink'
        console.log(typeof str)  //输出string
        let no = ''
        console.log(typeof no)  //输出string
        let flag = false
        console.log(typeof flag)  //输出boolean
        let un
        console.log(typeof un)  //输出undefined
        let obj = null
        console.log(typeof obj)  //输出object
相关推荐
五点六六六8 分钟前
cli中的@/components/utils是怎么被替换的成对应的alias的?
前端·前端框架·node.js
Joker—H21 分钟前
【Java】JUC并发(线程的方法、多线程的同步并发)
java·开发语言·经验分享·idea
欧阳天羲26 分钟前
Angular 框架下 AI 驱动的企业级大前端应用开
前端·人工智能·angular.js
啃火龙果的兔子28 分钟前
React 手动实现页面锚点导航
前端·javascript·react.js
_kaika134 分钟前
使用 1Panel PHP 运行环境部署 WordPress
开发语言·php
isNotNullX37 分钟前
数据怎么分层?从ODS、DW、ADS三大层一一拆解!
大数据·开发语言·数据仓库·分布式·spark
香蕉可乐荷包蛋39 分钟前
Vue 2 和 Vue 3 中,组件的封装、二次开发和优化
前端·javascript·vue.js
wuyoula1 小时前
deepseekAI对接大模型的网页PHP源码带管理后台(可实现上传分析文件)
开发语言·php
开开心心就好1 小时前
电脑桌面整理工具,一键自动分类
运维·服务器·前端·智能手机·pdf·bash·symfony
超龄超能程序猿1 小时前
(3)从零开发 Chrome 插件:网页图片的批量下载
android·java·javascript