在Java基础上学习JavaScript

这篇博客探讨了从Java基础转向JavaScript学习的过程,强调了两者在注释、字符串、输出、变量、数据类型、运算符、数组、函数、作用域链和对象等关键概念上的异同。JavaScript的动态类型、数组的灵活性以及函数作为普通变量的特性是其与Java显著不同的地方。
摘要由CSDN通过智能技术生成

JS的几种书写方式

  • 内嵌式,把js写到script标签中
  • 行内式,把js写到html元素的内部
  • 外部式,把js写到一个单独的.js文件中,在html里面通过script来引入

1.注释

JS//
HTML<!-- -->
CSS:/* */

2.字符串

可以使用单引号也可以使用双引号

3.输出

console.log把日志输出到控制台中

4.变量

定义一个变量:

var 变量名 = 初始值;

不管创建的变量是啥类型都是统一使用var这个关键字来表示,至于变量是啥类型取决于初始化的值是什么类型。
使用变量(读取+修改)就和java一样。小问题在于变量修改的时候本来是个数字类型,在赋值的时候可以给他赋值一个数字类型,也可以赋一个字符串类型,可是任意类型,这时候a变量的类型也随之发生改变。

变量的类型在运行过程中,随着赋值而发生改变这种行为称为“动态类型”(包括Python,PHP,Ruby)。
像java这样的语言不支持这种运行时类型发生改变,这种行为称为“静态类型”(包括C,C++,jAVA,Go,Rust)

var num = 10;//创建了一个名字为num的,数字类型的变量
var s = 'hello';//创建了一个名字为s的,字符串类型的变量
var arr = [];//创建了一个名字为ar,数组类型的变量

现在更倾向使用let来代替var,var是旧版本其实是违背直觉。引入let也就有了块级作用域,一个变量在{}内部定义是无法被{}外部访问的。js中var定义而变量{}内部的代码,是可以访问到{}外部的变量的。

5.数据类型

  • num:数字,不区分整数和小数
  • boolean:true真,false假
  • string:字符串类型,很多操作都是和Java类似的,如果字符串里本身就包含了单引号或者双引号,就可以使用单双引号灵活搭配的形式,来避免使用转义字符。js中的转义字符也是支持的。
  • undefined:只有唯一的值,表示未定义的值。一个未被初始化的变量就是undefined,这其实是一种非法的情况,不提倡使用。
  • null:只有唯一的值null,表示空值,属于合法情况。
  • NaN:表示当前的结果不是一个数字,比较常见的操作Not a Number,如果运算得到不是数字的值就会出现NaN

6.求长度

通过length属性,Java里的字符串求长度是length(),谈到长度就得明确长度单位,js此处长度单位是“字符”

let s = "你好";
console.log(s.length);//2

7.字符串拼接

和Java类似,直接使用+来进行拼接

8.布尔类型

在js中布尔类型会被当成1和0来处理,Java不会和数字混淆。

let a = true;
console.log(a+1);//2

这中设定方式为“饮食类型转换”,其实并不科学,如果一个编程语言越支持隐式类型转换,就认为类型越弱(C,JS,PHP认为是弱类型的编程语言),如果一个编程语言越不支持隐式类型转换,认为类型越强(Java,Go,Python认为是强类型的编程语言)。

强类型意味着类型之间的差异更大界限更明确。弱类型意味这类型之间差异不大,界限更模糊。

在这里插入图片描述

9.运算符

1)比较操作符

==比较相等(会进行隐式类型转换),只是比较两变量的值,而不比较两个变量的类型,如果两个变量能够通过隐式类型转换,专成来相同的值就认为也是相同的。
!=
===比较相等(不会进行隐式类型转换)&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值