初步学习js(一)

因为Java和js有许多相似之处,所以主要选了一些不太一样的列子。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js</title>
</head>
<body>
    <script>
        alert("hello");
    </script>
</body>
</html>

script里面可以放多种编程语言

但是现在js就是默认选项

js注释 //

js语句后的;可写可不写 建议还是写上

js的几种书写形式

1.内嵌式:把js写搭配script标签中

2.行内式:把js写到了html元素的内部

3.外部式:把js写到一个单独的js.文件中在html里面通过script来引入

最常用的输出方式 console.leg

会把日志输出给控制台

不管常见的是啥变量,此时都是统一使用这个关键字

至于具体是啥类型,取决于初始化的值,是啥类型

也可以不初始化变量

不初始化变量的时候,变量的值是一个特殊值undefined

类型也就是undefined类型

但是你不能创建一个未知初始化变量,同时指定它是一个字符串类型

在变量修改的时候有个小问题

如果本来a是一个数字类型,在符直的时候可以给它赋一个数字类型,也可以符一个字符串类型,也可以赋任意类型这个时候a变量的类型,也就随之发生改变

变量的类型1,可以在运行过程中,随着赋值而发生改变

这种行为,称为动态类型

   <script>
        {
            var a = 10;
        }
        console.log(a);

不受大括号定义约束,依然可以打出10

 number 数字

boolen tuue真 false假

string 字符串类型

undefined只有唯一的值udefined表示未定义的值

null 只有唯一的null 表示空格

NaN这是一个比较常见的操作

如果运算结果,得到的不是数字的值,就会出现NaN

console.log('hello' - 10);

将-换成+ 和Java类似,如果把字符串和数字相加,那么就会得到一个“字符串拼接”

字符串很多类型和java类似

如果字符串本身就包含引号,就可以通过单双引号,只显示双引号,单双没区别,看内容

通过相互搭配,来避免使用转义字符

let s ='my name is "xingyouye"';
        console.log(s);
        let s2 ='my name is "xingyouye"';
        console.log(s2);
        let s3 ='my name is "xingyouye"';
        console.log(s3);

js中的转义字符,不仅仅是\'\'',其他的转移字符们也是支持的

像\n,\t,\f 这些转移字符,也同样支持

字符串长度  11

   let s = 'hello world';
            console.log(s.length);

要清楚长度单位 此处单位就是字符 一个汉字的话就一个字符

字符串拼接和Java类似直接用+来拼接

   let a = 'hello';
            let b = 1111;
            console.log(a+b);
let a =true;
            console.log(a+1);

Java中的布尔是不能和1进行相加的

js中的true就被当成1来处理

这种设定方式,认为其实并不科学!隐式类转换。

undefined这个类型,就只有undefined这一个取值

let a;
console.log(a);

一个未被初始化的状态量就是undefined

java是一个静态强类型语言

js是一个动态弱类型语言

js中比较相等,有两种

只有比较两个变量的值,而不比较两个变量的类型,如果两个变量能够通过隐式类型转换转换成相同的值也是相等的

现在要比较变量的值,也是比较类型。如果类型不相同,就直接认为不相等。

谈到比较两个对象,有三个维度的比较

1.比较身份(是不是同行一个对象)

2.比较值(对象里存储的 数据是否相同)

3.比较类型(两个对象是否是同一个类型)

Java == 比较身份

        equals可以被重写,不重写默认也是比较身份,通过重写来设定成比较值

        instanceof比较类型

js == 只是比较值

        ===同时比较值和类型

let x = null;
if(!x){
         X=0;
}

等于

x = x || 0;

c = a||b

如果a的值 为真 (非0)此时c的值就是表达式a的值

如果a的值为假 (为0)此时c的值就是表达式b的值

c = a && b 也是类似的

如果a的值为假  此时c的值就是表达式a的值

如果a的值为真 此时c的值就是表达式b的值

js数组更像Java中创建一个对象

Java里面,int[]整型数组,String[]字符串数组

在js中,就只有一种数组,就叫数组

let arr = [1,2,3,4];
            console.log(arr[0]);
            console.log(arr[1]);
            console.log(arr[2]);
            console.log(arr[3]);

Java中要求数组下标,是0->-1范围,如果超出范围,就会输出一个异常

js并非如此,当我们访问一个超出范围的小标时,得到的结果是undefined,并不会出现异常


            arr[100]=10;
            console.log(arr);

 继续丧心病狂

所以js中的数组,就不是一个正经的数组

除了能接数组,还能接map的话(表示键值对)=>这里说,数组一个map,更准确的说,是一个对象

在js里,是可以在运行时,更黑对象新增属性的

上述代码区别还是源于 静态类型和动态类型之间





JavaScript 教程 (w3school.com.cn)

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值