js编写页面特效动态脚本类型的语言
变量:存储数据(日常生活中的东西,比如电视,手机,电脑,出生年份。。。)
语法:
var obj=value;
obj不能为数字开头,且区分大小写
value对应数据类型,如number string bool null undefined
概念
内存中存储一个数据的存储空间,并起一个别名
使用
创建
通过var方式 加上一个别名
var obj;
赋值
将等号右边的数据保存到等号左边
obj=value;
取值
在任何位置使用变量名造次使用变量中的值
console.log(obj);
简写:var obj=value;
****
声明提前
在执行程序之前,js引擎会预读所有var声明的变量
集中到顶部创建,赋值会留在原地
原来的
console.log(i);//undefined
var i=0;
console.log(i);//0
引擎修改后
var i;
console.log(i);//undefined
i=0;
console.log(i);//0
仅声明未赋值,会出现一个undefined
var obj;//undefined
仅赋值未声明(强烈不建议使用,虽然不会出错)
m=12;
未赋值未声明 obj is not defined
k
原型类型(基本类型)
number:数值
var s1=1,s3=2.5;
特殊情况:舍入误差
可能在计算过程上,可能会出现计算不尽的情况,通过
四舍五入方式来处理:i.toFixed(int)
占用8字节
1kb=1024b
1gb=1024mb;
string:字符串
通过引号(双,单)都可以的
使用了国际标准:unicode
一旦创建无法修改,只能创建或者替换
一个英文,数字占1b,一个汉字2b
什么情况下使用数字(原因是数字运算快)
比如价格,数量,年龄等,只要不含非数字的都使用number
只要含有非数字的都使用string
boolean:布尔
true--1
false--0
undefined:未定义
null:空
其他:
强类型:开发大型底层应用 :c ,c++ java

弱类型:开发高层应用(网页):js,python ,php
特点
声明变量时,无须指定数据类型
同一个变量,可以先后使用不同的数据类型
它会根据自身情况,'自动'的进行数据类型的转换

自动(隐式)转换
不需要程序员干预的,js自动帮我们程序员完成的
算数运算中
+,-,*/ %
默认情况下,会将数据转换成数字,然后计算
var s1=1,s2='2';
s2-s1 s2*s1 s2/s1 ....
+(重点)
如果2个变量进行计算时,其中一方
是字符串,那么就采用字符串拼接
如果转换不成数字,NaN(not a Number)
手动(强制)转换
程序员通过调用某些函数来完成类型的操作
任意类型转字符串的2个方法
x.toString():(除null和undefined外的其他都可以处理和面向对象的时候)
String(x):万能的(隐式处理)
typeof(obj):用于判断数据的类型
x.valueOf():只能 获取变量的内部值,进行类型转换
任意类型转数字
Number(x):(自动转换,只转换为纯数字的)
特殊:
null 0
'' 0
true
针对字符串的--数字
parseInt(x)
从左到右,依次读取X中数字字符串直到碰到
第一个非数字字符串就退出
无法识别小数部分
自动跳过空字符串
parseFloat(x)
识别小数的
将字符串转换为数值
Number与parseXXX;
前一个是万能的 ,后一个是字符串
如果字符串结尾有位置,使用后一个
任意类型转布尔
除0 NaN,null,undefined,''-->false;
其他为true

算数运算符:+ -* /% ++ --
%求余
先整除,再取除不尽的余数部分
10%3=1
步骤:1:10/3=3;
2:余数为1
何时使用:
判断能否被某个数整除时
比如说,能被2整除的
4,5,6,7,8,9,10 %2==0
被2整除余数是否是0
限制运行结果的上限时
比如我要限制3到
3,4,5,6,6,7,8/3
++ --(自增1,自减1)
将结果保存给变量
如果++,--在程序叫独立一行使用的话
i++ ++i的情况是一样的
如果参与运算如下
++i返回新值
i++返回旧值
var s=1;
console.log(s++ + s++ + s++ + s++)
1 2 3 4
如果是旧值,那么第一位返回1 ,从第2位开始加1

如果是新值的话,从第1位开始直接加1,如下
console.log(++s + ++s + ++s)
2 3 4

console.log( s++ + ++s + ++s + s++)
1+(1+1+1) (3+1) (4+1)

a++ + a++ + ++a + ++a
3+(3+1)+(4+1)
var a=1;
console.log( a++ + ++a + a++ + a++ + ++a );
//1+3+4+3+6=10+7
我的想法是将相同的如a++先进行计算 ,接着把++a的进行计算
最后将2个结合
如果前面的值已经加过了,那么继续累加的记录会给后面+1,以此类推
关系运行:做比较!返回boolean类型false true
> < >= <= != ==相等 ===全等 !==全不等
NaN不等于,不大于,不小于任何值(包括自己)
判断isNaN(x)如果是NaN的话,返回true 否则false
与任何数据做!=比较永远为true
null:主动清空一个变量(内存)
undefined:所有变量默认值
==无法判断null,undefined
原因是==自带自动转换''
===可以解决不自动转换
关系运算符
> < <= == != === !==
将多个关系运行综合得出的结论
做判断时返回true/false bool
&&与 所有条件为true则为true
||其中一个条件为true则为true
!取反

js笔记01的更多相关文章

  1. JS笔记—01

    1.JS的代码一般在头部写2.当页面载入时,会执行位于body部分的JavaScript当被调用时,位于head部分的JavaScript被执行.3.要对外部的JS文件的一个变量操作,代码是写在内部J ...

  2. Node.js 笔记01

    一.Node.js 前言 1.node.js 之父 Ryan Dahl(瑞安达尔) ,技术好,颜值高! 数学系博士, 中途退学, 为了生活, 学习了Ruby On Rails接Web项目, 经过两年成 ...

  3. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  4. PHP 学习笔记 01

    例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...

  5. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  6. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  7. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  8. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  9. 【技能大赛笔记01】Zigbee点对点按键控制程序开发

    [技能大赛笔记01]Zigbee点对点按键控制程序开发 --2017年"物联网物联网技术应用与维护"任务五题1(中职组) 1.题目要求 2.工程文件 在比赛中,提供了一个基于Bas ...

随机推荐

  1. Javascript:sort()方法快速实现对数组排序

    定义和用法: sort() 方法用于对数组的元素进行排序. 语法: arrayObject.sort(sortby) 注释:sortby,可选,规定排序顺序,必须是函数. 说明: 如果调用该方法时没有 ...

  2. 类型兼容原则(C++)

    类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代. 通过公有继承,派生类得到了基类中除构造函数.析构函数之外的所有成员.这样,公有派生类实际具备了基类的所有功能,凡是基类能解 ...

  3. Android 监听wifi广播的两种方式

    1.XML中声明 <receiver android:name=".NetworkConnectChangedReceiver" >             <i ...

  4. @IBDesignable和@IBInspectable

    近期一直在看苹果公司提供的两本swift官方教程电子书,一部是<The Swift Programming Language>,还有一部是<Using Swift With Coco ...

  5. Ignatius and the Princess III --undo

    Ignatius and the Princess III Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (J ...

  6. Android 基于Netty的消息推送方案之概念和工作原理(二)

    上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...

  7. Java基础知识强化44:StringBuffer类之把数组拼接成指定格式的字符串的案例

    1. 先看案例代码如下: package cn.itcast_07; /* * 把数组拼接成一个字符串 */ public class StringBufferTest2 { public stati ...

  8. passwd的使用

    名称:passwd 使用权限:所有使用者 使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] 说明:用来更改使用者的密码 参数: -k  keep ...

  9. C#中的一些技巧

    VS编辑器的虚线如何设置和取消:使用快捷键Ctrl+E+C VS自带的反编译工具是什么:il dasm

  10. .net I/O操作 导图

    稍微总结下,System.IO提供了四种类型来实现,对单个文件和计算机目录结构的操作.Directory和File通过静态成员实现建立.删除.复制和移动操作(上图没有提及).而FileInfo和Dir ...