JASS is the scripting language Blizzard invented for StarCraft 1. They kept the same scripting engine for Warcraft III and upgraded it into JASS2.
JASS is technically a programming language of sorts, however people usually call it a scripting language due to its high level nature. JASS scripts are compiled into JASS bytecode on map load which is then executed by a JASS virtual machine for improved execution speed. The language syntax seems to take ideas from BASIC, in that it uses keyword block terminators (eg endfunction, endif, endloop) rather than indentation (eg Python) or bracers (JAVA/C). JASS was not reused in StarCraft II, with Blizzard making a new C like language called Galaxy for its scripting purposes. The GUI of StarCraft I and Warcraft III compiles into JASS on map save.
JASS has a few major pitfalls. The language allows the declaration of only 1 globals block per script, making declaration of global variables cumbersome. Although the code is compiled to JASS bytecode, it still has to resolve every named element at execution time greatly limiting performance. The on load JASS compiler lacks optimization features resulting in extremely verbose and inefficient JASS bytecode. The JASS virtual machine lacks JIT compilation to native code also reducing performance. JASS lacks many basic operators that are often taken for granted in other programing languages such as all bitwise operators.