1.javascript基本概念

js是一种解释型语言,可以边运行边编译,html的架构https://www.html5rocks.com/en/tutorlals/internals/howbrowsweswork/

javascript严格区分大小写

javascript由三部分组成,ECMAScript,DOM,BOM

​ ECMAScript:欧洲计算机制造协会标准

​ DOM:js操作网页上元素(标签)的api

​ BOM:js操作浏览器的部分功能的api

js有行内样式、内嵌样式和外链样式

需要用js操作页面元素时,不能将javascript代码直接写入head中(src引入也一样),因为浏览器默认从上至下解析代码,当解析到head中js代码时,body里的代码还未解析,无法执行动作。

解决:把在head中的js代码加入到window.onload = function(){代码}中去

window.onload界面全部被加载完成后,才会加载其中的语句 这也是js代码通常写在body最低端的原因

2.javascript常见输出方式

2.1 弹窗形式输出

​ “alert” 如果alert内容不是数字,需要用单引号或者双引号括起来 弹窗中有确定按钮

​ ”confirm“ 弹窗中有确定、取消按钮

​ “prompt” 弹窗中有按钮和输入框,且返回值是字符串类型

2.2 网页内容区域输出

​ “document.write” 直接写到网页内容界面

2.3 开发者工具控制台输出

​ “console.log” 写进控制台

​ “console.warn” 警告输出

​ “console.warn" 错误输出

3.ECMAScript学习

3.1 js常量

​ 1.整型常量 整数,

​ 2.实型常量 小数

​ 3.字符串常量 单/双引号括起来的内容

​ 4.布尔常量 true/false

​ 5.自定义常量 const 常量名称 = 常量取值 不可更改

js中单独出现的数字也是常量,不可以更改 .toString不行

3.2 js变量

         1. var 变量名称;  这时浏览器会为此变量分配一个存储空间2. 变量使用  变量名称 = 变量数值;3. 获取变量数据

变量第一次赋值称为变量初始化;若变量没有初始化,则存储undefined

初始化方式:先定义变量再初始化;定义变量的同时进行初始化

​ 可以同时定义多个变量 var 变量一,变量二;

​ 变量数值保持相同,可以对多个变量进行赋值 变量一=变量二=变量三=xxxx;

​ 变量数值不同,赋值:var 变量一 = xxx,变量二 = xxx;

变量之间可以互相赋值,变量一 = 变量二; 将变量二的值拷贝一份给变量一

若两次var 定义统一变量名,则变量数值以最后定义为准

在ES6之前先使用变量再定义变量,不会报错 因为浏览器解析js代码前的预处理:

​ 将当前js代码中所有变量的定义和函数的定义放在全部代码最前面

问题解决:用let代替var

var a = 3 与 a = 3的区别
  1. 在函数作用域内 加 var 定义的变量是局部变量,不加 var 定义的就成了全局变量
  2. 使用var定义的变量会发生变量提升
  3. 在全局作用域下,使用 var 定义的变量不可以 delete,没有 var 定义的变量可以 delete。也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过 delete 删除,而变量不可以。

3.3 标识符

标识符只能由字母、数字、下划线和$组成,数字不能做开头;标识符不能是ES中的关键字或保留字;标识符一般都采用驼峰命名法;

4.数据类型

在JS中一共有基本数据类型和引用数据类型两大类,又有六种数据类型

 基本数据类型:
  • Number 数值 整数以及小数

  • String 字符串 单/双引号括起来的数值就是字符串类型

  • Boolean 布尔 true和false

  • Undefined 未定义

  • Null 空值

  • symbol(ES6)

    引用数据类型:

  • Object 对象

操作符 typeof 可以用来检测数据类型;

4.1 转换为数值类型

字符串转换为数值类型:

  1. Number(常量或变量);类似于string();函数,根据输入的数值重新生成一个

  2. 如果字符串中没有数据,转换的结果为0

  3. 如果字符串中的数据不仅仅是数值,转换结果为NaN : not a number,但数值类型为number

布尔类型转换为数值类型:

  1. Number(常量或变量);
  2. 若布尔类型为true,转换结果为1;false转换结果为0

null类型转换为数值类型:

  1. Number(常量或变量);
  2. 转换结果为0;

undefined类型转换为数值类型:

  1. Number(常量或变量);

  2. 转换结果为NaN,但数值类型为number

数学符号+或—变量/常量 方式转换

本质上 也是调用了number函数;但“-”减号转换会改变数值的正负性

let str = “123”;let num = +str;转换结果为123,number类型
let str = “123”;let num = -str;转换结果为-123,number类型

parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)

  1. parseInt把字符串内的整数部分提取出来,转换为数值类型;例如3.14将被转换为3,12mm将被转换为12;

  2. parseFloat可以提取小数;

  3. 两种方式都是由左至右提取数值,遇到非数值会立即停止;停止时若没有遇到数字,返回NaN;

  4. 两种方式都会将输入当做字符串处理,例如输入布尔类型true,会被认为是字符串true四个字母

parseInt函数:

parseInt(string, radix)

4.1 转换为字符串类型

Number、Boolean、Undifned和Null类型都可以转换为字符串类型;

  1. 对于Number和Boolean类型来说,可以通过 变量名称.toString()的方式来转换,拷贝转换不会影响原有数据类型

  2. String(变量名称);可以转化所有的基本数据类型;String可以将常量复制转化为字符串类型,但.toString()不可以

  3. 变量或者常量+单/双引号即可转化为字符串类型 value+“” 所有基本数据类型都可以转换

4.3 转换为布尔类型

boolean(常量/变量)函数;

  1. 字符串类型转换为布尔类型;转换时,当字符串为空时,转换为false,不为空(包括space和tab)转换为true;
  2. 数值类型转换为布尔类型;转换时,只有数值为0以及NaN时,才会转换为false;
  3. null类型转换为布尔类型;转换为false;
  4. undefined类型转换为布尔类型;转换为false;

4.4 判断数据类型

typeof;instanceof;

  1. undefined和null的区别

    undefined代表定义未赋值;null代表赋值但值为null,null可以作为值赋给对象

  2. 什么时候为变量赋值为null?

    初始赋值将变量赋值为null,表明将要赋值为对象,代码严谨;结束前赋值一个对象赋值给了某个变量后,将此变量赋值为null可以释放对象,使得对象成为垃圾对象被垃圾回收器回收

  3. 严格区分变量类型和数据类型?

    数据类型:基本类型和对象类型;变量类型(变量的内存中值的类型):基本类型(保存基本类型数据)和引用类型(其中保存的是对象的地址)

    var c = {}   //将对象赋值给c后,c存储的是对象的地址,但typeof c输出object,这时会根据地址值访问到指向的数据
    var b = {}
    console.log(b === c);//false,因为引用地址不同
    

js基础1 输入输出方式 数据类型相关推荐

  1. 【JS基础】类型转换——不同数据类型比较

    小试牛刀 输出下列数据比较结果 [] == 0; //==============================================================true[] == f ...

  2. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  3. ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...

    JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...

  4. js php 数据类型判断,【js基础】变量类型判断

    类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...

  5. JS基础-Java Class类以及获取Class实例的三种方式

    JS基础-Java Class类以及获取Class实例的三种方式 由于JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,包括类名.包名.父类.实现的接口. ...

  6. 超全的auto.js基础操作,目前是autoX.js的控制方式。2023年7月9日更新!(第2/4章)

    02_auto.js基础操作2/4 文章目录 02_auto.js基础操作2/4 复杂界面 待办事项 登录界面 界面模板 用户调查 一个小测试 画布 函数图像简单版 函数图像高级版 脚本引擎 停止所有 ...

  7. 小汤学编程之JavaScript学习day01——认识JS、JS基础语法

    一.认识JS 1.JavaScript的组成     2.浏览器执行js简介     3.JavaScript是什么?     4.扩展内容 二.JS基础语法 1.代码书写位置     2.变量    ...

  8. 前端三刺客---JS(基础语法)

    文章目录 JS初识 JavaScript和HTML和CSS的关系 JavaScript代码运行过程 JavaScript的组成 JS 第一个Hello World JavaScript的书写格式 JS ...

  9. js基础day01小结

    第02阶段.前端基本功.前端基础.入门语法 计算机知识补充 学习目标 理解 简单了解计算机组成 认识计算机内存 一. 核心内容 1. 计算机组成 1.1 软件(程序) 系统软件:Windows.Lin ...

最新文章

  1. java 必须存在默认构造器_Java默认构造方法在字节码的实现
  2. # LeetCode集锦(四) - 第13题 Roman To Integer
  3. python动态图-不就是用Python做个动态图吗?看招
  4. url参数拼接 php,PHP解析url并得到url参数方法总结
  5. 学习http only cookie以及javascript创建cookie的方式
  6. strace/linux
  7. 对外汉语语料库有哪些_史上最全最新的语料库资源大全【对外汉语教学研究工具】...
  8. 【毕业设计】基于大数据的销量数据预测 -python销量预测 大数据 可视化
  9. python取出数组大于某值_计算矩阵中大于某个值的所有值
  10. gitee 链接报错
  11. 排序算法--快排的优化
  12. 2012 nba playoff 观感
  13. Android Fragment重叠问题解决
  14. 隐私计算工程化之殇,为什么“久攻不破”?
  15. 电脑如何通过数据线连接手机网络?(USB共享网络)
  16. java后台获取微信分享二维码 并返回给前端
  17. 100以内能被7和3整除的数的和
  18. Gym - 102174G 神圣的 F2 连接着我们 (线段树优化建图 + 多源最短路)
  19. Fastadmin一键生成菜单栏目
  20. 自旋锁与互斥锁的对比、手工实现自旋锁

热门文章

  1. Mybatis异常错误:Mapper method attempted to return null from a method with a primitive return type (int)
  2. smart200PLC TCP通讯
  3. c语言中的多线程的实现
  4. php常用的加密解密方法
  5. Redis第 2讲:配置Redis访问密码及端口号
  6. 编写一个布雷程序,在一个10*10的范围内随机布5-10颗雷,显示结果
  7. 【数据库复习】 模式分解例题
  8. Myth源码解析系列之三- 环境搭建
  9. java并发编程实战wwj----------第三阶段-------------ConcurrentHashMap----------------72
  10. usb转串口驱动ch341安装及安装后无效的处理办法