JavaScript Day01 初识JavaScript 2

简介: JavaScript Day01 初识JavaScript

3.关键字与保留字

关键字:(在js中有特殊功能)

break do try typeof

case else new var

catch finally return void

continue for switch while

debugger this function with

default if throw instanceof

delete in


保留字:(将来可能成为关键字)


abstract enum int short

boolean export interface static

byte extends long super

char final native synchronized

class float package throws

const goto private transient

debugger double implements protected

volatile import public


3.1 区分大小写

typeof 关键字, typeOf 非关键字


3.2 标识符

指变量,函数,属性的名字或者函数的参数。标识符是按照以下规则组合起来的一或多个字符:


1.字母,数字,下划线,$组成


2.只能以字母,下划线,$开头。


3.不能将关键字作为标识符。命名采用驼峰式命名


语句

每个语句以分号结尾,如果省略分号,由解析器确定语句的结尾,即分号可以省略,但是我们要求每个语句的末尾都应该有分号


4.变量

变量是一个值的容器,该容器的值可以随时改变。ECMAScript的变量是弱类型(松散类型),可以用来保存任何类型的数据。定义变量时使用var关键字。

变量的使用:

声明 var message;

初始化 message = “hello”

声明并初始化 var message = “hello”;

定义多个变量 var message= “hello”,found=false, age = 29;

变量名的命名规则:

变量名由字母,数字,下划线以及$组成。

不要使用下划线或者数字作为变量名的开头

变量名应该具有一定的意义,使用小驼峰命名规则 var userAgeTotal = “”;

不要使用关键字或是保留字


变量的使用

变量的使用一般用经过声明,初始化,使用三个步骤

// 变量声明
var a ;
// 变量初始化
a = 3;
// 变量调用
console.log(a);

js是弱类型的语言

弱类型语言具有如下特点:


  1. 变量的数据类型在初始化的时候确定
  2. 变量的数据类型可以随时发生改变
  3. 类型细分不明显

Java 是强类型语言

1.变量的数据类型在声明的时候确定


2.变量的数据类型一定确定不能更改


var

var用于声明一个变量,在es6中,可以通过let声明一个变量,通过const声明一个常量


变量可以重复声明

var a = b = c = 3;
var d = 10,e = 20,f,g;
//弱类型语言,变量容器可以混合使用
var a = "hello world";//变量的重复赋值(相同的数据类型、不同的数据类型)  
function a(){}

变量声明会被提升 (函数的声明也会)

//console.log(b);//报错
console.log(a);//不会报错
var a = 3;
//等价于:
var a;//在所有代码执行之前,js解释器会将js中所有的var声明的变量提升。
console.log(a);
a=3;

var声明的变量的作用域

案例1

function foo(){
  if(true){
    var a = 3;  
    console.log("inner",a);//inner 3
  }
  console.log("outer",a);//inner 3  //没有块级作用域
}
foo();
console.log(a);//error!  函数作用域:局部作用域
// var 的变量声明提前知会提升到当前作用域的最前面

案例2

//如果在函数中定义变量没有加var,该变量为全局变量
function test(){
  message = "hello"; 
}
test();
console.log(message); //可以访问

案例3

//用var操作符定义的变量将成为定义该变量的作用域中的局部变量
//全局作用域
function b() {
  a = 10;
  return;
}
var a = 1;
b();
console.log(a);//10

案例4

x = 1;//window.x  global.x
console.log(x); //1
function y() {
  console.log(x); //undefined
  console.log(this.x);//1
  var x = 2;
  console.log(x); //2
}
y();
console.log(x);//1

案例5

//函数作用域:局部作用域
var a = 1;
function b() {
  a = 10;
  return;
  //a函数声明,提前变量a,将a认为是函数b作用域的变量,具有局部效果
  function a(){}
} 
b(); 
console.log(a); // 1

5.数据类型

5.1 JavaScript基本数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。


引用数据类型:对象(Object)、数组(Array)、函数(Function)。


注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。


-JavaScript 拥有动态类型

JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型

var x;               // x 为 undefined
var x = 5;           // 现在 x 为数字
var x = "John";      // 现在 x 为字符串

-字符串 String

字符串是存储字符(比如 “Bill Gates”)的变量。


字符串可以是引号中的任意文本。可以使用单引号或双引号:

var carname="Volvo XC60";
var carname='Volvo XC60';

可以在字符串中使用引号,只要不匹配包围字符串的引号即可:

var carname="Volvo XC60";
var carname='Volvo XC60';

可以使用字符字面量,转义字符

\n 换行 \t 制表 \b 退格

\r 回车 \ 斜杠 ’ 单引号

" 双引号

字符长度可通过length属性获取字符长度

var str = "我是字符串";
console.log(str);
console.log(str.length);
var s4='\n\t\b\r';

-数字 Number

JavaScript 只有一种数字类型。数字有很多类型,按照数字精度可以分为整数(int),单精度(float),双精度(double ),按照数字的表示方法可以分为二进制(Binary),八进制(Octal),十进制(decimal system),十六进制(Hexadecimal)。但是在js中,所有的数字统一使用Number来表示。


表示方法


-整数:

十进制 55 由0~9组成


八进制 070 首位为0,其他位有0~7组成


十六进制 0x11 首位为0x,其他位为09,AF

var num1 = 34;         //不使用小数点来写
var num2 = 010;        //8
var num3 = 0x10;       //16
console.log(x1, x2, x3, x4);

-浮点数:

所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后必须至少有一位数字。浮点数值的最高精度是17位小数


普通浮点数 3.1415926


科学计数法 3.125e7 即31250000

var f1 = 3.1415926;  //3.1415926
var f2 = 3.125e7;    //31250000
console.log(f1, f2);

-非数值:

该数值表示一个本来要返回数值的操作数未返回数据的情况

var a = 10/ "a";  // a为NaN

-非数值检测:

判断参数是否“不是数值”,当参数para不是数值的时候返回true

isNaN(NaN); // true


目录
相关文章
|
XML 缓存 前端开发
Android 架构之 MVI 初级体 | Flow 替换 LiveData 重构数据链路(下)
Android 架构之 MVI 初级体 | Flow 替换 LiveData 重构数据链路
762 0
|
7月前
|
存储 人工智能 运维
idc机房智能运维解决方案
华汇数据中心一体化智能运维方案应运而生,以“自主可控、精准洞察、智能决策”三大核心能力,助力企业实现运维效率提升与综合成本下降的数字化转型目标。
400 24
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型时代,HR如何用人事管理系统突破效率天花板?
本文深入剖析传统HR面临的四大效率困局,包括招聘低效、考勤错误频发、绩效管理混乱及数据决策滞后,并提出人事管理系统的核心功能矩阵作为解决方案。文章详细解读了招聘自动化引擎、智能考勤生态、绩效飞轮系统和数据决策驾驶舱的创新应用,帮助HR突破效率瓶颈。同时,针对系统选型提供了科学指南,强调适配性与实施策略的重要性。最后,展望HR系统未来三大进化方向:体验驱动、智能预测和生态互联,助力企业实现人力资源管理的数字化转型。
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何优化克隆代码时长
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
SQL XML JSON
技术心得:查询重置功能的实现
技术心得:查询重置功能的实现
172 0
java锁:第一章:公平和非公平锁
java锁:第一章:公平和非公平锁
185 0
java锁:第一章:公平和非公平锁
分布式事物如何保证接口请求顺序性?
前言 先抛出一个问题大家思考一下:在分布式系统中,我们如何保证多个请求的顺序性问题,比如有A/B两个系统,系统A在一次订单业务处理中,向B系统发送三次请求,先进行插入订单操作,然后对订单状态进行修改,最后增加用户积分。 但是这三次请求分别落在了不同的机器上,并且插入订单的操作由于一些意外导致延迟,修改订单操作先执行了,但是此时并没有订单信息,也就会出现我们期望之外的结果了。
|
Web App开发 测试技术
静态资源的分布对网站加载速度的影响/浏览器对同一域名下并发加载资源数量
静态资源的分布对网站加载速度的影响 / 浏览器对同一域名下并发加载资源数量 / browsers network-http-persistent-max-connections-per-server 引文:浏览器在同一个域名下并发加载的资源数量是有限的,访问淘宝首页需要加载126个资源,那么如此小的并发连接数自然会加载很久,所以前端开发人员往往会将上述这些资源文件分布在多个域名下,变相的
2692 0
|
存储 XML Java
android 详解 SharedPreferences
SharedPreferences存储类效率分析 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一...
1122 0
|
关系型数据库 MySQL 数据库
MySQL学习_1--->输入查询
  之前也曾学习过MySQL,但是从来没有静下心好好的看看MYSQL的手册,现在觉得什么书都不如官方的手册有用,即使大家除了这样,那样的数,所有的知识点无非都是出自官方的教材,哎,自己以前太浮躁,只去看自己需要的那一部分,功力不足啊,还是得重新的看看书,学习学习。
850 0